-3

获取发送请求到服务器并收到错误 409,程序暂停,使用 try except 并忽略她,我也收到错误 409 和 XML 响应,我该如何阅读?

HTTP.Response.gettext - 不给我,只有关于服务器的信息

http.response.rawheaders.commatext - 只有关于服务器的信息

内容长度匹配

答案可以在嗅探器中看到

我在程序中得到答案?

4

1 回答 1

1

TIdHTTP收到来自服务器的 HTTP 错误,如 409 时,它会引发EIdHTTPProtocolException异常,并且错误的内容文本将在其ErrorMessage属性中,例如:

try
  IdHTTP1.Get(...);
except
  on E: EIdHTTPProtocolException do
  begin
    // HTTP-specific error
    ShowMessage(Format('HTTP Error'#13'Response: %d %s'#13'Content: %s', [E.ErrorCode, E.Message, E.ErrorMessage]));
  end;
  on E: Exception do
  begin
    // any other error
    ShowMessage(Format('Exception'#13'Class: %s'#13'%s', [E.ClassName, E.Message]));
  end;
end;

当您遇到密码错误时,它应该显示一个弹出消息框,内容如下:

HTTP Error
Response: 409 Conflict
Content: <?xml version="1.0" encoding="UTF-8" standalone="yes"?><error code="10003" appid="1"><failure cause="INVALID_PASSWORD" field="password" value="******"/></error>
于 2012-10-18T18:01:28.297 回答