像这样使用 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 会给你一些关于错误请求的信息。