C# 使用来自IHttpClientFactory的PostAsync处理XML消息
使用IHttpClientFactory中的PostSync方法处理SOAPEnveloperXML文档时遇到问题。 这就是我想做的:C# 使用来自IHttpClientFactory的PostAsync处理XML消息,c#,soap,httpclient,C#,Soap,Httpclient,使用IHttpClientFactory中的PostSync方法处理SOAPEnveloperXML文档时遇到问题。 这就是我想做的: var soapEnvelopeXml = ObjectToXMLDocumentConverter.ObjectAsXmlDocument(object); var content = new StringContent(soapEnvelopeXml.ToString(), Encoding.UTF8, "text/xml"); var
var soapEnvelopeXml = ObjectToXMLDocumentConverter.ObjectAsXmlDocument(object);
var content = new StringContent(soapEnvelopeXml.ToString(), Encoding.UTF8, "text/xml");
var response = await client.PostAsync(endpoint, content);
这产生了400个错误请求。我发现解决问题的方法是直接使用SOAP字符串,而不是首先将其转换为XML消息:
var soapString = ObjectToSoapRequestConverter.ObjectSoapStringRequest(object);
using (var client = clientFactory.CreateClient())
{
client.DefaultRequestHeaders.Add(...);
client.DefaultRequestHeaders.Add(...);
var content = new StringContent(soapString, Encoding.UTF8, "text/xml");
using (var response = await client.PostAsync(endpoint, content))
{
var soapResponse = await response.Content.ReadAsStringAsync();
...
}
}