c# - 如何使用 HttpRequestMessage 发送证书?

标签 c# .net ssl cryptography ssl-certificate

这里我有一个 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);

最佳答案

这是一个结合了 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://learn.microsoft.com/en-us/archive/blogs/henrikn/httpclient-httpclienthandler-and-webrequesthandler-explained

关于c# - 如何使用 HttpRequestMessage 发送证书?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37750881/

相关文章:

c# - 我需要通过代码将自定义表单大小添加到本地打印服务器

c# - Foreach 在带有元素的非空 IEnumerable 上抛出 NullReferenceException

SSL:如何在 docker 容器中访问 HTTPS

web-services - Spring WS 客户端——使用服务器和客户端证书进行身份验证

c# - 通过DataGridView向集合添加元素

c# - 将 HTML 抓取到对象,然后使用 AutoMapper 进行建模

.net - 从 WPF 中的图像读取元数据

c# - 如何使用 C#2010 将图表图像复制到剪贴板?

java - 尝试在 java 中处理来自浏览器的 HTTP CONNECT 请求

c# - 在通用 Windows 应用程序中测试 SDK