如果采用之前的HttpWebRequest方法是实现https的请求,会报错无法建立SSL连接
换一种读取方式 参考地址
1 ,https://blog.csdn.net/shanghaibao123/article/details/124116749
2,https://www.bbsmax.com/A/amd00jxjdg/
3,https://www.cnblogs.com/bjxxlbm/articles/14644030.html
1 首先在NuGet中下载包
Microsoft.Extensions.Http
2 在启动类ConfigureServices中配置启用https
//.net core添加https 正式配置
services.AddHttpClient(Options.DefaultName, c =>
{
// ...
}).ConfigurePrimaryHttpMessageHandler(() =>
{
return new HttpClientHandler
{
ClientCertificateOptions = ClientCertificateOption.Manual,
ServerCertificateCustomValidationCallback =
(httpRequestMessage, cert, certChain, policyErrors) => true
};
});
3 调用
先在构造函数中注入
private readonly IHttpClientFactory _httpClientFactory;
public TCQXXCLService( IHttpClientFactory httpClientFactory)
{
_httpClientFactory = httpClientFactory;
}
调用
/// <summary>
/// 获取https 不传参数
/// </summary>
/// <param name="url"></param>
/// <param name="json"></param>
/// <returns></returns>
public string GetApi(string url, string json)
{
try
{
var httpClient = _httpClientFactory.CreateClient();
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Accept", "text/plain");
httpClient.DefaultRequestHeaders.TryAddWithoutValidation("Content-Type", "application/json");
var httpResponseMessage = httpClient.GetAsync(url);
// var httpResponseMessage = httpClient.GetAsync(url);
var content = httpResponseMessage.Result.ToString();
return content;
}
catch (Exception ex)
{
throw;
}
}
/// <summary>
/// post传参数 json格式
/// </summary>
/// <param name="url"></param>
/// <param name="requestJson"></param>
/// <returns></returns>
public string HttpClientPost(string url, string requestJson)
{
Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
Uri postUrl = new Uri(url);
var encodeBytes = Encoding.UTF8.GetBytes(requestJson);
using (HttpContent httpContent = new ByteArrayContent(encodeBytes))
{
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var client1 = _httpClientFactory.CreateClient();
client1.Timeout = new TimeSpan(0, 0, 60);
var result = client1.PostAsync(postUrl, httpContent).Result.Content.ReadAsStringAsync().Result;
return result;
}
}
标签:core,string,httpClientFactory,https,var,new,net,httpClient
From: https://www.cnblogs.com/yunnn/p/16643264.html