問題
在自行構造 HttpClient 請求 SOAP 接口之后,返回 500 錯誤,並且提示 NoSOAPAction 信息。
原因
造成這個問題的主要原因是因為缺少了 SOAPAction 標頭,所以提示該信息。
解決
解決問題很簡單,只需要在請求的時候,為其 Header 增加一個 SOAPAction 標頭,並且將其值設置為你需要調用的 SOAP 接口。
例如:
var webRequest = new HttpRequestMessage(HttpMethod.Post,@"https://xxx.xxx.xxx.xxx:xxxxx/uis-web/xxxx/TransactionOntimeService?wsdl");
webRequset.Headers.Add("SOAPAction","TransactionOntimeService");
var webClient = new HttpClient();
var result = webClient.SendAsync(webRequest).GetAwaiter().GetResult();
