La requête HTTP renvoie du HTML au lieu de JSONBonjour
J'ai essayé de demander du JSON à une API en utilisant le script suivant :
request_neu = New HTTP Request(
URL( "https://redacted.com/api/path?fileType=Json" ),
Method( "GET" ),
//headers( {"Accept: text/plain", "Accept: text/html", "Accept: */*"} ),
//headers( {"Accept: */*"} ),
//I tried everything here
Headers( {"Accept: application/json"} ),
Username( "api.user" ),
Password( "redacted" ),
Timeout( 900000 )
);
response = request_neu << send;
show(request_neu << get mime type);
show(request_neu << get status);
show(request_neu << get status message);
show(substr(response,1,999));
JSON to data table(response);J'ai ajouté les instructions de débogage après que la fonction JSON à la table de données ait entraîné une erreur et la sortie est
request_neu << get mime type = "text/html; charset=utf-8";
request_neu << get status = 200;
request_neu << get status message = "HTTP/1.1 200 OK";
Substr(response, 1, 999) = "
etc
donc essentiellement au lieu de JSON, je reçois du HTML.
Ce qui est intéressant, c'est que cela fonctionne avec Postman, Python et même Excel.
Ce qui est vraiment intéressant, c'est qu'il y a quelques mois, lorsque j'ai créé ce script, il fonctionnait également.
Avez-vous une idée de ce qui se passe ici ?
Merci
Accès aux donnéesRe : La requête HTTP renvoie du HTML au lieu de JSONAvez-vous essayé de voir ce que contient le HTML ? Vous pouvez par exemple l'enregistrer en tant que page .html en utilisant Save Text File()
Je ne vois rapidement rien de mal dans votre syntaxe, ci-dessous un exemple légèrement modifié de l'index de script
Names Default To Here(1);
request = New HTTP Request(
url("http://httpbin.org/get"),
Method("GET"),
Headers({"Accept: application/json"}),
Username("ross"),
Password("Abc123"),
);
data = request << Send;
Show(request << get response headers, request << get last url);
Re : La requête HTTP renvoie du HTML au lieu de JSONQuand j'ai regardé le code HTML, il ressemble à la page Web de la plateforme sauf que les liens relatifs sont rompus.
J'ai peur de devoir discuter avec les responsables de la plateforme puisque l'erreur semble provenir de là.
Re : La requête HTTP renvoie du HTML au lieu de JSON"Accepter : application/json" n'est qu'un indice pour le service Web quant au type de réponse que vous souhaitez renvoyer.
Les services Web sont totalement libres de l'ignorer.
S'agit-il d'un service Web externe ou d'un service développé "en interne" si "en interne", alors vous souhaiterez parler au développeur du retour des données json à la demande d'un client.
S'il est externe, pouvez-vous publier la documentation de l'API ?
Re: La requête HTTP renvoie du HTML au lieu de JSONTout va bien ?