当 HttpClient 超时时,Web API 控制器中的请求会发生啥?
Posted
技术标签:
【中文标题】当 HttpClient 超时时,Web API 控制器中的请求会发生啥?【英文标题】:What happens to request in Web API controller when HttpClient times out?当 HttpClient 超时时,Web API 控制器中的请求会发生什么? 【发布时间】:2015-07-16 05:27:08 【问题描述】:我试图了解当发送请求的 HttpClient 在服务实际完成处理并发回响应之前实际超时时,基于 Web API 的服务控制器接收到的请求会发生什么情况。
【问题讨论】:
【参考方案1】:发生的情况是HttpClient
将关闭底层连接并抛出TaskCancelledException
。异常StatusCode
将表明已经超时。
另一方面,在 WebAPI 方面,会注意到客户端断开连接并将其设置为 HttpResponse.ClientDisconnectedToken
(类型为 CancellationToken
)取消。更多关于 here
【讨论】:
如果 HttpClient 超时,则抛出 TaskCancelledException @DarrelMiller 你是对的。将其与WebClient
混合在一起。固定。【参考方案2】:
增加HttpClient.Timeout
属性的值。
【讨论】:
以上是关于当 HttpClient 超时时,Web API 控制器中的请求会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章
当达到测试超时时,Maven 肯定会失败构建,即使失败时设置为 true