关于C#使用HttpPost500报错的问题,远程服务器返回错误:(500)内部服务器错误

最近在做一个动态库,要求调用两个webservice地址完成。

首先我就用soapUI工具将两个地址都测了一遍,确定能走通后开始写代码。

代码里采用的HttpPost方式,

第一个接口进行的比较顺利直接就完成了,但第二个接口就开始出问题。同样的方式在soapUI同样成功的报文,但放到代码里面就一直返回“远程服务器返回错误:(500)内部服务器错误”

期间更改各种配置,都于事无补。

迫于无奈,只能尝试直接引用服务地址的方式,放弃httppost,奇迹般好了。

可是在生成dll的时候,由于调用方式是引用服务,需要依赖服务配置文件。根本无法提供给第三方平台灵活使用,就这样我又被打回了原型。

在大神建议下使用了Fiddler网络抓包工具,将每次请求都挨个拿出来一一对应了一遍才发现,不论是soapUI工具还是服务引用的方式,Request的请求头里面都有SOAPAction的属性。走的是soap协议。而C#HttpPost调用的报文头HttpWebRequest类,没有SOAPAction的属性。

在查阅资料后发现HttpWebRequest有一个Headers.Add的方法可以手动添加这一属性

最后

request.Headers.Add("SOAPAction", "http://******.org/*******/******");

成功调用,解决了问题。

 

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值