JS ajaxレスポンスと同様に、DelphiのIdHTTPでレスポンステキストを取得するにはどうすればよいですか?ページコンテンツを含む標準のresponseTextプロパティがあります。また、IdHTTPにはresponseCodeプロパティがありますが、HTTPステータスコードを表します。Delphi IdHTTPレスポンステキスト
たとえば、JS ajaxレスポンスにはstatusCodeとresponseTextがあります(画像参照)。 XMLHttpRequest
で
JS ajaxレスポンスと同様に、DelphiのIdHTTPでレスポンステキストを取得するにはどうすればよいですか?ページコンテンツを含む標準のresponseTextプロパティがあります。また、IdHTTPにはresponseCodeプロパティがありますが、HTTPステータスコードを表します。Delphi IdHTTPレスポンステキスト
たとえば、JS ajaxレスポンスにはstatusCodeとresponseTextがあります(画像参照)。 XMLHttpRequest
で
さて、私は最終的に解決策を見つけました。私の質問は、最初は不明であった場合
try
Result := id_http.Post(url, params);
except
on E: EIdHTTPProtocolException do
if (id_http.ResponseCode = 400) then
Result := E.ErrorMessage
else
Result := E.Message;
end;
申し訳ありません:私は試してみる...キャッチオペレータとEIdHTTPProtocolExceptionを使用することを取得します。
responseText
インディ・ライブラリー内の応答の「コンテンツ」に相当します。 TIdHTTP.Get
への呼び出しでは、このコンテンツを取得する方法がいくつか用意されています。最も簡単なだけで、コンテンツの種類に応じてString
...
var
ResponseText: String;
begin
ResponseText := IdHTTP1.Get('www.google.com');
...
end;
としてGet
関数の結果を読み取ることで、あなたが埋めることができた。一例のために、Get
の他のオーバーロードのいずれかを使用することを望むかもしれませんa TStream
。
はい、まずTIdHTTP.Get()オーバーロードを使用してJSONコンテンツをダウンロードし、JSONを解析して 'status'と' responseText'値を抽出する必要があります。 –
これは、通常の要求では0を返し、エラーでは負の数を返すカスタムAPIのrepsonseコードです。 – Ariakas
質問:レスポンスで完全なコンテンツにアクセスする方法を尋ねていますか?または、サーバーから受け取ったこのJSONを解析する方法を尋ねていますか? '-1'はフル*コンテンツを受け取ったのですか?または、JSONオブジェクトは*フル*コンテンツですか? –
JSONは、JSでajaxを使用して取得するレスポンスの単なる例です。 DelphiのResponseTextには、「HTTP/1.1 400の不正なweb-api-key」という文字列が含まれています。 AjaxのresponseTextには '-1'が含まれています。私はデルファイで '-1'を取得する必要があります。 – Ariakas