我已经对此进行了大量的搜索和阅读,有很多不同的方法来实现这一目标。但是,由于很多帖子,事情发生了一些变化。最终,我使用的是UWP(10586最低目标)应用。我已将我的httpclient代码包装到我的UWP应用程序消耗的.net标准库中。但是,由于10586 SDK版本,我的.net标准库必须为1.4或更低。
我需要以RESTful方式将json发布到Web服务。 Tjis Web服务使用SSL但具有自签名证书。所以,我得到了证书错误。我只想忽略它们,这样我就可以打电话了。使用第三方Web服务测试实用程序(Postman),我已确认如果简单地忽略SSL错误,调用将起作用。
根据我的UWP和.net标准设置,我无法使用X509命名空间来忽略SSL错误。这是一种方法,但X509不可用。
所以,这看起来最有希望:https://blog.roushtech.net/2016/12/20/ignoring-ssl-certificate-errors-net-core-httpclient/
它没有编译器错误,但在运行时我得到“平台不支持”异常。
根据我的配置,有没有办法解决所有这些问题?
编辑:我正在使用的确切片段似乎是未来支持的方法,但在UWP上给出的平台错误与我上面复制的链接相同。作为参考,这就是我正在做的事情:
using (var httpClientHandler = new HttpClientHandler())
{
httpClientHandler.ServerCertificateCustomValidationCallback = (message,
cert, chain, errors) => { return true; };
using (var client = new HttpClient(httpClientHandler))
{
// Make request here.
}
}
此外,是的,我的代码适用于非ssl(http)调用。它已经工作了一段时间,直到我需要访问配置为ssl的新/不同的Web服务。
感谢!!!