Luk*_*ett 3 c# linux servicestack .net-core
我知道ServicePointManager.ServerCertificateValidationCallback.Net Core中不再存在,而是替换为:
using(var handler = new System.Net.Http.HttpClientHandler())
{
using (var httpClient = new System.Net.Http.HttpClient(handler))
{
handler.ServerCertificateCustomValidationCallback = (request, cert, chain, errors) =>
{
return true;
};
}
}
Run Code Online (Sandbox Code Playgroud)
但是我们目前正在使用该ServiceStack.Core库,据我所知,该库不会暴露像这样的属性或处理程序本身.
我如何告诉ServiceStack客户端在此代码中绕过ssl验证?
using(var client = new JsonServiceClient("https://www.google.com"))
{
var response = client.Get("/results");
}
Run Code Online (Sandbox Code Playgroud)
如果有办法,Windows和Linux上的工作方式是否相同?
JsonServiceClient是基于.NET构建的,HttpWebRequest它已经在.NET Core中重写为HttpClient的包装器,因此我们通常建议.NET Core避免这种开销(比.NET 4.5慢得多)并转而使用ServiceStack中的JsonHttpClient. HttpClient,因为它HttpClient直接使用,你可以注入自己HttpClientHandler的:
var client = new JsonHttpClient(baseUrl)
{
HttpMessageHandler = new HttpClientHandler
{
UseCookies = true,
AutomaticDecompression = DecompressionMethods.GZip | DecompressionMethods.Deflate,
ServerCertificateCustomValidationCallback = (req,cert,chain,errors) => true
}
};
Run Code Online (Sandbox Code Playgroud)
请注意,建议重用HttpClient实例,以便尽可能重用HttpClient实例并避免丢弃它们.
| 归档时间: |
|
| 查看次数: |
2583 次 |
| 最近记录: |