What is this?

This knowledgebase contains questions and answers about PRTG Network Monitor and network monitoring in general.

Learn more

PRTG Network Monitor

Intuitive to Use. Easy to manage.
More than 500,000 users rely on Paessler PRTG every day. Find out how you can reduce cost, increase QoS and ease planning, as well.

Free Download

Top Tags


View all Tags

XML: Structural error in xml file, 1 open items.

Votes:

0

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

errorstructuralxml prtg python scritp

Created on Oct 7, 2021 9:51:23 PM

Last change on Oct 8, 2021 6:15:22 AM by  Felix Wiesneth [Paessler Support]



Replies

Nobody has replied yet


Disclaimer: The information in the Paessler Knowledge Base comes without warranty of any kind. Use at your own risk. Before applying any instructions please exercise proper system administrator housekeeping. You must make sure that a proper backup of all your data is available.