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")

Article Comments