C# 在C中使用HttpClient发布xml#
我在将xml文件从客户端传递到api时遇到问题。我使用HttpClient进行连接。 我的代码:C# 在C中使用HttpClient发布xml#,c#,.net,xml,post,C#,.net,Xml,Post,我在将xml文件从客户端传递到api时遇到问题。我使用HttpClient进行连接。 我的代码: ServicePointManager.ServerCertificateValidationCallback+=(发件人、证书、链、sslPolicyErrors)=>true; /*var serializer=新的XmlSerializer(typeof(InitUploadType)); 序列化器。序列化(数据)*/ XmlDocument doc=新的XmlDocument(); doc.
ServicePointManager.ServerCertificateValidationCallback+=(发件人、证书、链、sslPolicyErrors)=>true;
/*var serializer=新的XmlSerializer(typeof(InitUploadType));
序列化器。序列化(数据)*/
XmlDocument doc=新的XmlDocument();
doc.Load(“initupload sign.xml”);
WebRequestHandler=新的WebRequestHandler();
X509Certificate2证书=新的X509Certificate2(“cert.crt”);
handler.ClientCertificates.Add(证书);
HttpClient=新的HttpClient(处理程序);
client.BaseAddress=新Uri(“https://test-e-dokumenty.mf.gov.pl");
client.DefaultRequestHeaders.Accept.Add(新的System.Net.Http.Headers.MediaTypeWithQualityHeaderValue(“应用程序/xml”);
var response=client.PostAsJsonAsync(“/api/Storage/InitUploadSigned”,doc).Result;
返回response.ToString();
我收到了错误的请求400。请尝试我修改的以下代码好吗
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
/*var serializer = new XmlSerializer(typeof(InitUploadType));
serializer.Serialize(data);*/
XmlDocument doc = new XmlDocument();
doc.Load("initupload-sign.xml");
WebRequestHandler handler = new WebRequestHandler();
X509Certificate2 certificate = new X509Certificate2("cert.crt");
handler.ClientCertificates.Add(certificate);
HttpClient client = new HttpClient(handler);
client.BaseAddress = new Uri("https://test-e-dokumenty.mf.gov.pl");
client.Headers.Set("Content-Type", "application/xml");
var response = client.UploadString(path, doc.OuterXml);
return response.ToString();
你能试试下面我修改过的代码吗
ServicePointManager.ServerCertificateValidationCallback += (sender, cert, chain, sslPolicyErrors) => true;
/*var serializer = new XmlSerializer(typeof(InitUploadType));
serializer.Serialize(data);*/
XmlDocument doc = new XmlDocument();
doc.Load("initupload-sign.xml");
WebRequestHandler handler = new WebRequestHandler();
X509Certificate2 certificate = new X509Certificate2("cert.crt");
handler.ClientCertificates.Add(certificate);
HttpClient client = new HttpClient(handler);
client.BaseAddress = new Uri("https://test-e-dokumenty.mf.gov.pl");
client.Headers.Set("Content-Type", "application/xml");
var response = client.UploadString(path, doc.OuterXml);
return response.ToString();
您可以使用类似fiddler的工具查看从客户端发送/接收的内容。它将帮助您了解发生了什么,因为HTTP 400错误可能意味着很多事情。我使用IE浏览器访问url,但没有获得xml数据。您可以使用fiddler之类的工具查看从客户端发送/接收的内容。它将帮助您了解发生了什么,因为HTTP 400错误可能意味着很多事情。我使用IE浏览器访问url,但没有获取xml数据。