TIdHttp を次のように使用する場合:
Memo1.Text := IdHTTP1.post(url,data);
httpエラーが発生しなければ、memo1へのレスポンスコンテンツを取得できます。しかし、http の不正なリクエストを送信すると、Indy はコンテンツを提供しません。私もtry..exceptを使用していますが、エラーボックスを防ぐだけで、コンテンツは表示されません。
http エラーが返された場合でもコンテンツを取得するにはどうすればよいですか?
HTTP エラーが発生するとTIdHTTP
、 EIdHTTPProtocolException
例外が発生します。その例外には、そのプロパティに HTTP ステータス コード、そのErrorCode
プロパティに HTTP ステータス テキストMessage
、およびそのプロパティに応答データが含まれていErrorMessage
ます。
このコードを試してください
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 は、不正なリクエストに関する情報を提供します。