10

Delphi6 と XE3。

リクエストの実際のレスポンスボディを取得したい。しかし、サーバーはエラー 500 を生成します。その後、Indy は応答テキストをエラーの説明に置き換えます。

このホームページも500回の非正常動作を想定して設計されており、応答文から何をすべきかを判断する必要があります。

ステータス コードが 500 の場合、IdHTTP または Exception オブジェクトから応答テキストを取得できますか?

情報をありがとう!

4

1 に答える 1

17

TIdHTTPでサーバー エラーが発生すると、例外EIdHTTPProtocolExceptionが発生します。ErrorCodeプロパティには HTTP ステータス コード (500 など)Messageが含まれ、プロパティには HTTP ステータス テキスト (「Internal Error」など)ErrorMessageが含まれ、プロパティには本文のテキストが含まれます。応答があれば。たとえば、次のようになります。

try
  IdHTTP1.Get(...);
except
  on E: EIdHTTPProtocolException do begin
    // use E.ErrorCode, E.Message, and E.ErrorMessage as needed...
  end;
end;
于 2013-06-10T16:10:33.980 に答える