HttpClient 等效于 HttpWebRequest 的 ServicePoint.MaxIdleTime 属性

Posted

技术标签:

【中文标题】HttpClient 等效于 HttpWebRequest 的 ServicePoint.MaxIdleTime 属性【英文标题】:HttpClient's equivalent of HttpWebRequest's ServicePoint.MaxIdleTime property 【发布时间】:2016-09-26 15:05:25 【问题描述】:

我正在将旧的 .NET 代码转换为 .NET 4.5 框架。

我正在更新的一个特定方法是将HttpWebRequest 更改为HttpClient 调用。现有代码调用外部 Web API。

这相当简单,只是现有 HttpWebRequest 代码中的代码为请求的ServicePoint.MaxIdleTime 分配了一个值。对于 HttpClient 来说,这相当于什么。

编辑 以下是HttpWebRequest 的设置方式。

var webReq = WebRequest.Create(API_ENDPOINT) as HttpWebRequest;

webReq.Method = "POST";
webReq.ContentType = "text/xml; charset=utf-8";
webReq.ServicePoint.MaxIdleTime = 1000 * 10; 

【问题讨论】:

完全一样。 ServicePoint.MaxIdleTime 是影响两个类的“全局”设置 @PanagiotisKanavos 我刚刚更新了我的问题。好像是在 HttpWebRequest 的实例上设置的? Chrome 不允许我删除之前的评论。 HttpClient 在下面使用 HttpWebRequest,因此您应该能够使用 ServicePointManager.FindServicePoint 获取 URL 的 ServicePoint 【参考方案1】:

您可以使用全局静态类ServicePointManager 来设置ServicePoint 空闲限制。您还可以使用FindServicePoint(uri) 方法获取对单个ServicePoint 的引用,以便在初始调用后进行修改。或者,您可以使用组

【讨论】:

以上是关于HttpClient 等效于 HttpWebRequest 的 ServicePoint.MaxIdleTime 属性的主要内容,如果未能解决你的问题,请参考以下文章

如何在 .NET 6 中用 HttpClient 替换过时的 WebClient

HttpClient->GetStringAsync() 为 https Uris 抛出 0x000006F4

C# 等效于 Java 标点正则表达式

等效于 Riverpod 中的 ChangeNotifierProvider 小部件

NSTimer 等效于 Javascript

复合赋值运算符