以下是一个使用HttpClient 调用SOAP 服务的简单示例:
csharp
using System;
using System.Net.Http;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// 初始化HttpClient实例
HttpClient httpClient = new HttpClient();
// 构造SOAP请求消息
string soapRequest = @"<?xml version=""1.0"" encoding=""utf-8""?>
<soap:Envelope xmlns:soap=""http://schemas.xmlsoap.org/soap/envelope/"">
<soap:Body>
<YourSOAPRequest>
<!-- SOAP请求内容 -->
</YourSOAPRequest>
</soap:Body>
</soap:Envelope>";
// 配置请求头
httpClient.DefaultRequestHeaders.Add("SOAPAction", "YourSOAPAction");
httpClient.DefaultRequestHeaders.Add("Content-Type", "text/xml;charset=utf-8");
// 发送请求并获取响应
HttpResponseMessage response = await httpClient.PostAsync(
"YourSOAPServiceURL",
new StringContent(soapRequest)
);
// 处理响应结果
if (response.IsSuccessStatusCode)
{
string soapResponse = await response.Content.ReadAsStringAsync();
// 解析SOAP响应...
}
else
{
Console.WriteLine($"SOAP请求失败,状态码:{response.StatusCode}");
}
}
}
在上述示例中,需要替换以下内容:
• YourSOAPRequest:替换为实际的SOAP 请求内容。
• YourSOAPAction:替换为实际的SOAP 操作。
• YourSOAPServiceURL:替换为实际的SOAP 服务URL。
请注意,根据实际情况,可能需要根据SOAP 协议的要求进行其他设置,例如设置SOAP 头部信息、SOAP消息的命名空间等。
此示例仅提供了基本的框架,具体的SOAP 请求和响应解析需要根据实际情况进行定制。