1. 程式人生 > >C# 使用 HttpClient 調用 WebService 提示 NoSOAPAction

C# 使用 HttpClient 調用 WebService 提示 NoSOAPAction

code nsa ice 接口 method ces send use ade

問題:
在自行構造 HttpClient 請求 SOAP 接口之後,返回 500 錯誤,並且提示 NoSOAPAction 信息。

原因:
造成這個問題的主要原因是因為缺少了 SOAPAction 標頭,所以提示該信息。

解決:
解決問題很簡單,只需要在請求的時候,為其 Header 增加一個 SOAPAction 標頭,並且將其值設置為你需要調用的 SOAP 接口。
例如:

var webRequest = new HttpRequestMessage(HttpMethod.Post,@"https://58.247.0.18:20443/uis-web/services/TransactionOntimeService?wsdl");
webRequset.Headers.Add("SOAPAction","TransactionOntimeService");

var webClient = new HttpClient();
var result = webClient.SendAsync(webRequest).GetAwaiter().GetResult();

C# 使用 HttpClient 調用 WebService 提示 NoSOAPAction