(HttpWebResponse)request.GetResponse() throwing 操作已经超时

Posted

技术标签:

【中文标题】(HttpWebResponse)request.GetResponse() throwing 操作已经超时【英文标题】:(HttpWebResponse)request.GetResponse() throwing The operation has timed out 【发布时间】:2018-01-23 06:49:24 【问题描述】:

我正在尝试使用 HTTPWebRequest 将我的数据发布到第三方 WebAPI。我的数据已成功发布,但在我的错误日志中,我看到一条日志显示操作已在 (HttpWebResponse)request.GetResponse() 中超时。

虽然我的数据已成功发布,但我无法找出原因。有什么建议吗?

提前致谢。

【问题讨论】:

【参考方案1】:

您的请求已成功发送到服务器,但您未能得到响应。如果它总是发生,可能 WebAPI 在发送响应之前需要花费大量时间来处理请求,以便您的 HttpWebRequest 不再等待。尝试将HttpWebRequest.Timeout 设置一个较大的值。

【讨论】:

谢谢skyoxZ...把超时值设置为Timeout.Infinite可以吗,推荐吗? @pallavi Infinite 不推荐。查看获得响应所需的时间并将Timeout 设置为一个足够大的值以在大多数情况下获得响应。

以上是关于(HttpWebResponse)request.GetResponse() throwing 操作已经超时的主要内容,如果未能解决你的问题,请参考以下文章

读取HttpWebResponse流的两种方法及注意的问题

C# HttpWebReqeust和HttpWebResponse发送请求

c#发送Http请求

HTTPWebResponse + StreamReader 非常慢

使用 HttpWebResponse 读取“分块”响应

向指定url发送请求与获取响应