【发布时间】:2018-01-17 23:18:44
【问题描述】:
当使用 IDHTTP 发送带有 JSON 变量的 POST 命令时,有时服务器会返回以下异常:
HTTP/1.1 500 内部服务器错误
我知道这是服务器端错误,我的请求 JSON 数据可能有问题。
但是如果我使用 Chrome 运行相同的 POST 命令,浏览器将在页面内容中显示更详细的错误,而不是简单的 HTTP 500。有没有办法使用 IDHTTP 也接收这些详细信息?
这是我的代码示例:
idhttp1.Request.ContentType := 'application/json';
idhttp1.post(URL, JsonToSend); //this line will throw the exception
【问题讨论】:
-
处理EIdHTTPProtocolException 异常。
-
@Victoria 请注意,如果启用了
hoNoProtocolErrorException标志,或者在请求的AIgnoreReplies参数中传递500,则不会引发EIdHTTPProtocolException。在这种情况下,除非您启用hoWantProtocolErrorContent标志,否则正文数据将被丢弃。见New TIdHTTP flags and OnChunkReceived event