Csharp/C#教程:什么是HttpClient.Timeout和使用WebRequestHandler超时属性之间的区别?分享


什么是HttpClient.Timeout和使用WebRequestHandler超时属性之间的区别?

我可以直接用HttpClient.Timeout设置我的HttpClient对象的超时,但我最近读到了WebRequestHandler类,它是HttpClientHandler的衍生物。

WebRequestHandler具有ReadWriteTimeout属性。 当与HttpClient.Timeout一起使用时,这将如何影响请求的操作?

当您执行SendAsyncHttpClient.Timeout被放置在CancellationTokenSource 。 这意味着此超时适用于整个异步操作。

另一方面, WebRequestHandler.ReadWriteTimeout被复制到HttpWebRequest ,它在请求流上设置ReadTimeoutWriteTimeout 。 所以这更像是流级别的超时,最终是套接字级超时。

如果同时设置两者,那么如果操作总共超过HttpClient.Timeout将超时,并且如果来自流的读取或写入花费的时间比WebRequestHandler.ReadWriteTimeout长,则它也将超时。 虽然我不确定引发的超时exception是否存在差异。

WebRequestHandler.ReadWriteTimeout – 获取或设置向服务器写入请求或从服务器读取响应时的超时(以毫秒为单位)。

HttpClient.Timeout – 获取或设置在请求超时之前要等待的TimeSpan

这里, WebRequestHandlerHTTPClient的包装器, WebRequestHandler派生自HttpClientHandler但添加的属性通常只在完整的.NET上可用。 总而言之,它更不是一回事。

有关更多信息,请参阅此链接 – https://blogs.msdn.com/b/henrikn/archive/2012/08/07/httpclient-httpclienthandler-and-httpwebrequesthandler.aspx

上述就是C#学习教程:什么是HttpClient.Timeout和使用WebRequestHandler超时属性之间的区别?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/1010417.html

(0)
上一篇 2021年12月30日
下一篇 2021年12月30日

精彩推荐