【问题标题】:How do you send a certificate with an HttpRequestMessage?如何发送带有 HttpRequestMessage 的证书?
【发布时间】:2016-06-10 14:33:56
【问题描述】:

这里我有一个 HttpRequestMessage,我正在尝试向它添加一个客户端证书,但似乎找不到如何执行此操作。有没有人做过这样的事情?

HttpRequestMessage request = new HttpRequestMessage(HttpMethod.Get, "myapi/?myParm=" + aParm);
//Want to add a certificate to request - a .p12 file in my project
myAPIResponse res = await SendAndReadAsAsync<myAPIResponse>(request, aCancelToken);

【问题讨论】:

标签: c# .net ssl cryptography ssl-certificate


【解决方案1】:

这是一个结合 HttpClient 和 HttpRequestMessage 的答案。

保存数据的 HttpRequestMessage 和处理数据发送方式的客户端。

WebRequestHandler handler = new WebRequestHandler();
X509Certificate certificate = GetMyX509Certificate();
handler.ClientCertificates.Add(certificate);
HttpClient client = new HttpClient(handler);
var request = new HttpRequestMessage (HttpMethod.Get, "myapi/?myParm=" + aParm);
HttpResponseMessage response = await client.SendAsync (request);
response.EnsureSuccessStatusCode();

编辑:这里有一个链接解释了 WebRequestHandler、HttpClientHandler 和 HttpClient 之间的区别,以了解你应该在什么时候使用:https://docs.microsoft.com/en-us/archive/blogs/henrikn/httpclient-httpclienthandler-and-webrequesthandler-explained

【讨论】:

  • 谢谢 :) 我会试试看的!
  • 现在是 HttpClientHandler
  • @irhetoric 但是,您不能将证书添加到 HttpClientHandler。
猜你喜欢
  • 2018-04-15
  • 1970-01-01
  • 1970-01-01
  • 2018-05-14
  • 2023-04-10
  • 1970-01-01
  • 1970-01-01
  • 2012-03-29
  • 1970-01-01
相关资源
最近更新 更多