我正在尝试将现有的类库代码转换为.NET核心类库。在static构造函数代码中,我有以下内容:
ServicePointManager.DefaultConnectionLimit = 100;
ServicePointManager.Expect100Continue = false;我做了一些搜索,ServicePointManager在.NET核心中不再可用,现在应该使用WinHttpHandler (ServicePointManager.DefaultConnectionLimit in .net core?)。
我的问题是,ServicePointManager到底是什么,正在设置的那些属性是什么?
WinHttpHandler不是static as ServicePointManager,所以我必须创建一个实例来设置这些属性?我是否需要更改所有的http调用才能使用该实例?
发布于 2016-09-19 21:14:09
WinHttpHandler继承自HttpMessageHandler,因此您可以在构造HttpClient时将其作为参数传递,如下所示:
WinHttpHandler httpHandler = new WinHttpHandler();
httpHandler.SslProtocols = SslProtocols.Tls12;
HttpClient client = new HttpClient(httpHandler);希望这能有所帮助!
发布于 2018-03-26 18:27:28
从v2.0开始,.NET核心中提供了ServicePointManager
程序集System.Net.ServicePoint、Version=4.0.0.0、Culture=neutral、PublicKeyToken=cc7b13ffcd2ddd51
也就是说,我使用以下命令实现了我的HTTP客户端调用:
System.Net.Http.HttpClientHandler handler; // use DI etc to create
if (options.SkipSsl) // config driven
handler.ServerCertificateCustomValidationCallback = (req, cer, ch, err) => true;发布于 2018-08-03 18:15:07
只需添加以下名称空间:
using System.Net.Http;
using System.Net.Http.Headers;然后更改您的行,如下所示:
WinHttpHandler httpHandler = new
WinHttpHandler();
httpHandler.SslProtocols = SslProtocols.Tls12 | SslProtocols.Tls11 | SslProtocols.Tls;而不是
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12 |
SecurityProtocolType.Tls11 | SecurityProtocolType.Tls;编码快乐!
https://stackoverflow.com/questions/39560249
复制相似问题