将SOAP文档发送到API端点

时间:2017-01-05 15:45:19

标签: c# web-services serialization soap httpclient

我希望将SOAP文档发送到API。

我想要使用的方法是创建一个反映soap文档的c#对象,然后在使用它之前将该对象转换为字符串 string作为我使用HTTPClient PostAsync方法发送的HTTPContent对象中的内容。

SOAP文档的结构如下: -

<SOAPENV:Envelope
xmlns:SOAPENV="http://www.w3.org/2003/05/soap-envelope"
xmlns:SOAPENC="http://www.w3.org/2003/05/soap-encoding"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAPENV:Body>
<StateRequest>
  <SourceSystem>SOURCESYSTEMHERE</SourceSystem>
  <SourcePassword>SOURCEPASSWORDHERE</SourcePassword>
  <SourceJobList>
    <SourceJobID>SOURCEJOBIDHERE</SourceJobID>
  </SourceJobList>
</StateRequest>
</SOAPENV:Body>
</SOAPENV:Envelope>

我想做类似下面的Psuedo代码: -

HttpContent content = new StringContent(object.ToString(), Encoding.UTF8, "text/xml");
            content.Headers.ContentType = new MediaTypeHeaderValue("text/xml");
            _client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("text/xml"));

            var response = _client.PostAsync(new Uri("http://targeturl.com "), content).Result;

我想知道的是

  1. 我需要创建哪些c#对象和属性来映射此文档结构?我需要创建一个C#对象,因为我将使用从中发送的数据 另一个更新SourceSystem,SourcePassword和SourceJobID属性的源代码。
  2. 我需要什么序列化/配置作为上述方法的一部分,因为我确信除了在对象上执行.ToString()之外还需要更多。
  3. 此致 MACCA

0 个答案:

没有答案