C# 使用 HttpClient 调用 WebService 提示 NoSOAPAction

本文详细解析了在调用SOAP接口时遇到500错误及NoSOAPAction提示的原因,主要是由于请求中缺失了SOAPAction标头。文章提供了具体的解决方案,通过在HttpRequestMessage的Header中添加SOAPAction标头并设置正确的接口名称,即可成功调用SOAP服务。

问题

在自行构造 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();

转载于:https://www.cnblogs.com/myzony/p/10461708.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值