关于C#使⽤HttpPost500报错的问题,远程服务器返回错误:
(500)内部服务器错误
最近在做⼀个动态库,要求调⽤两个webservice地址完成。
⾸先我就⽤soapUI⼯具将两个地址都测了⼀遍,确定能⾛通后开始写代码。
代码⾥采⽤的HttpPost⽅式,
第⼀个接⼝进⾏的⽐较顺利直接就完成了,但第⼆个接⼝就开始出问题。同样的⽅式在soapUI同样成功的报⽂,但放到代码⾥⾯就⼀直返回“远程服务器返回错误:(500)内部服务器错误”
期间更改各种配置,都于事⽆补。
迫于⽆奈,只能尝试直接引⽤服务地址的⽅式,放弃httppost,奇迹般好了。
可是在⽣成dll的时候,由于调⽤⽅式是引⽤服务,需要依赖服务配置⽂件。根本⽆法提供给第三⽅平台灵活使⽤,就这样我⼜被打回了原型。
在⼤神建议下使⽤了Fiddler⽹络抓包⼯具,将每次请求都挨个拿出来⼀⼀对应了⼀遍才发现,不论是so
调用webservice服务apUI⼯具还是服务引⽤的⽅
式,Request的请求头⾥⾯都有SOAPAction的属性。⾛的是soap协议。⽽C#HttpPost调⽤的报⽂头HttpWebRequest类,没有SOAPAction的属性。
在查阅资料后发现HttpWebRequest有⼀个Headers.Add的⽅法可以⼿动添加这⼀属性
最后
request.Headers.Add("SOAPAction", "******.org/*******/******");
成功调⽤,解决了问题。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论