关于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/*******/******");

成功调用,解决了问题。

 

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