HTTP リクエストは json ではなく html を返しますこんにちは
次のスクリプトを使用して API から JSON をリクエストしようとしました。
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);JSONからデータテーブルへの関数がエラーになった後にデバッグステートメントを追加しました。出力は次のようになります。
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
つまり、基本的には JSON ではなく HTML を受け取ります。
興味深いのは、Postman、Python、さらには Excel でも動作することです。
本当に興味深いのは、数か月前にこのスクリプトを作成したときも動作していたことです。
ここで何が起こっているのか、何か分かりますか?
THX
データアクセスRe: HTTP リクエストが json ではなく html を返すHTMLに何が含まれているかを確認してみましたか?たとえば、テキストファイルの保存()を使用して.htmlページとして保存することができます。
構文に間違いは見当たりません。以下はスクリプトインデックスから少し変更した例です。
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: HTTP リクエストが json ではなく html を返すHTML を見ると、相対リンクが壊れていることを除けば、プラットフォームの Web ページと似ているように見えます。
間違いはそこから発生しているようなので、プラットフォームの責任者と話し合う必要があるのではないかと心配しています。
Re: HTTP リクエストが json ではなく html を返す「Accept: application/json」は、返される応答の種類に関する Web サービスへのヒントにすぎません。
Web サービスではこれを無視してもまったく問題ありません。
これは外部の Web サービスですか、それとも「社内」で開発されたサービスですか。「社内」で開発されたサービスである場合は、クライアントからの要求時に JSON データを返す方法について開発者に相談する必要があります。
外部の場合、API ドキュメントを投稿できますか?
Re: HTTP リクエストが json ではなく html を返す大丈夫ですか?