我正在尝试将REST消息发布到存在证书问题的网站。在我们的IT人员解决该问题之前,我需要在执行PostAsync
呼叫时绕过此操作。
由于某种原因,ServerCertificateCustomValidationCallback
它不再是的一部分HttpClientHandler
。还有另一种方法可以解决此问题以避免权限错误?谢谢。
这是我在做什么的示例。
string json = JsonConvert.SerializeObject(new
{
Message = new
{
TestID = "1",
}
});
var spHandler = new HttpClientHandler()
{
ServerCertificateCustomValidationCallback = (sender, cert, chain, sslPolicyErrors) =>
{
return true;
}
};
System.Net.Http.HttpClient client = new System.Net.Http.HttpClient(spHandler,true);
client.BaseAddress = new System.Uri("https://test.com");
client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));
var content = new StringContent(json, Encoding.UTF8, "application/json");
HttpResponseMessage msg = client.PostAsync(@"/Test", content).Result;
编辑:(修复了“ /”定界符问题)
从
client.BaseAddress = new System.Uri("https://test.com");
HttpResponseMessage msg = client.PostAsync(@"/Test", content).Result;
至
client.BaseAddress = new System.Uri("https://test.com/");
HttpResponseMessage msg = client.PostAsync("Test", content).Result;
我实际上找到了问题,并编辑了上面的问题。原来,您不能在uri PostAsync查询中使用前导“ /”。这是造成问题的原因。处理程序实际上很好。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句