【发布时间】:2014-04-10 16:40:22
【问题描述】:
我一直在使用HttpClient 使用 C# 进行 WebApi 调用。与WebClient 相比,它看起来简洁而快速。但是我在拨打Https 电话时遇到了困难。
如何使用以下代码进行Https 调用?
HttpClient httpClient = new HttpClient();
httpClient.BaseAddress = new Uri("https://foobar.com/");
httpClient.DefaultRequestHeaders.Accept.Clear();
httpClient.DefaultRequestHeaders.Accept.Add(
new MediaTypeWithQualityHeaderValue("application/xml"));
var task = httpClient.PostAsXmlAsync<DeviceRequest>(
"api/SaveData", request);
编辑 1: 上面的代码可以很好地进行 http 调用。但是当我将方案更改为 https 时,它不起作用。以下是得到的错误:
底层连接已关闭:无法建立信任 SSL/TLS 安全通道的关系。
编辑 2: 将方案更改为 https 是:第一步。
如何提供证书和公钥/私钥以及 C# 请求。
【问题讨论】:
-
你只是通过指定
new Uri("https://foobar.com/");进行https调用 -
我很困惑。那还不行吗?你有错误吗? (编辑:在 OP 将 URI 从 https 更改为 http 之前发布)
标签: c# asp.net-web-api dotnet-httpclient