C# 使用来自IHttpClientFactory的PostAsync处理XML消息

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

使用IHttpClientFactory中的PostSync方法处理SOAPEnveloperXML文档时遇到问题。 这就是我想做的:

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();
                    ...                    
                 }
      }