Hi good I have an error with the Python Script Advanced Sensor. the error I get is the following:
XML: Structural error in xml file, 1 open items. -- JSON: The JSON returned does not match the expected structure (Invalid JSON.). (code: PE231).
this would be the scritp I am using
from rauth import OAuth2Service
import json
import requests
import os
import time
import datetime
## proceso para obtener el token del identity server
access_token = None
service = OAuth2Service(
name="GL",
client_id="xxxxx",
client_secret="xxxxx",
access_token_url='https://xxxxxxxx/pjidentityserver/connect/token'
)
data = {
'scope': 'xxxxx.descarga.api',
'grant_type': 'client_credentials'
}
session = service.get_auth_session(data=data,decoder=json.loads)
access_token = session.access_token
##Proceso para consulta de api https://xxxxxxxx/xxxxxx/api/DescargaArchivoController/DescargarArchivo para la descarga de archivos
urldescarga = "https://xxxxxxxxx/xxxxxxx/api/DescargaArchivoController/DescargarArchivo"
payload = json.dumps({
"contexto": {
"codigo": "0900",
"provieneSIAGPJ": True
}
})
headers = {
'P_Archivo': '{"identificador":"xxxxxxxxxxxxxxxxxxxxxxxxxxx","nombreArchivo":"Apremio corporal, ordenarlo (oficio)"}',
'Authorization': 'Bearer '+access_token,
'Content-Type': 'application/json'
}
response = requests.request("POST", urldescarga, headers=headers, data=payload)
estado = 0
mensaje_estado = ""
if response.status_code == 200:
estado = 1
mensaje_estado = "El Api descarga SI esta funcionando. "
else:
estado = 0
mensaje_estado = "El Api descarga NO esta funcionando. "
# descarga de archivo
carpeta = "D:/CursoPython-Final/DescargaGL/"
try:
os.stat(carpeta)
except:
os.mkdir(carpeta)
open(carpeta+"prueba.pdf", 'wb').write(response.content)
#comprobaciones de tamaña, fecha y si existe archivo
peso_archivo = os.path.getsize(carpeta+"prueba.pdf")
fecha_archivo = os.path.getmtime(carpeta+"prueba.pdf")
existe_archivo = os.path.isfile(carpeta+"prueba.pdf")
# print(peso_archivo)
# print(datetime.datetime.fromtimestamp(fecha_archivo))
# print(existe_archivo)
##peso
estado_peso = 0
mensaje_peso = ""
if peso_archivo >= 0:
estado_peso = 1
mensaje_peso = "El archivo SI posee el peso adecuado. "
else:
estado_peso = 0
mensaje_peso = "El archivo NO posee el peso adecuado. "
#existe_archivo
estado_existe=0
mensaje_existe=""
if existe_archivo == True:
estado_existe = 1
mensaje_existe = "El archivo SI se descargo correctamente a la carpeta. "
else:
estado_existe = 0
mensaje_existe = "El archivo NO se descargo correctamente a la carpeta. "
print("<? xml version = '1.0' encoding = 'UTF-8'?>")
print("<prtg>")
print("<result>")
print("<channel>Estado API</channel>")
print("<value>"+str(estado)+"</value>")
print("</result>")
print("<result>")
print("<channel>Tamaño Archivo</channel>")
print("<value>"+str(estado_peso)+"</value>")
print("</result>")
print("<result>")
print("<channel>Descarga</channel>")
print("<value>"+str(estado_existe)+"</value>")
print("</result>")
print("<text>"+ mensaje_estado + mensaje_peso + mensaje_existe+"</text>")
print("</prtg>")
time.sleep(4)
os.remove(carpeta+"prueba.pdf")