5

TIdHttp を次のように使用する場合:

Memo1.Text := IdHTTP1.post(url,data);

httpエラーが発生しなければ、memo1へのレスポンスコンテンツを取得できます。しかし、http の不正なリクエストを送信すると、Indy はコンテンツを提供しません。私もtry..exceptを使用していますが、エラーボックスを防ぐだけで、コンテンツは表示されません。

http エラーが返された場合でもコンテンツを取得するにはどうすればよいですか?

4

2 に答える 2

7

HTTP エラーが発生するとTIdHTTPEIdHTTPProtocolException例外が発生します。その例外には、そのプロパティに HTTP ステータス コード、そのErrorCodeプロパティに HTTP ステータス テキストMessage、およびそのプロパティに応答データが含まれていErrorMessageます。

于 2013-08-31T20:41:02.667 に答える
3

このコードを試してください

Try
    Memo1.Text := IdHTTP1.post(url,data);
except on e: EIdHTTPProtocolException do
begin
    memo1.lines.add(idHTTP1.response.ResponseText);
    memo1.lines.add(e.ErrorMessage);
end;

e.ErrorMessage は、不正なリクエストに関する情報を提供します。

于 2013-08-31T18:55:15.653 に答える