5

像这样使用 TIdHttp 时:

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

如果没有给出 http 错误,我可以获得对 memo1 的响应内容。但是当它给出 http 错误请求时,Indy 并没有给我内容。我也在使用 try..except 但它只防止错误框并且仍然没有给我内容。

即使返回 http 错误,我如何才能获取内容?

4

2 回答 2

7

当发生 HTTP 错误时,TIdHTTP引发 EIdHTTPProtocolException异常。该异常在其属性中包含 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 回答