话说是这般的,这片上开发一个短信发送功能,客户吃了一个 Web Service
地址(没有文档),让我调用就可发送了,

本人于VS 2013上加了劳动引用,一切正常,可是执行代理方时,怎么都报错

  • RPC Message receiveExtMTPushRequest1
    in operation receiveExtMTPush1 has an invalid body name
    receiveExtMTPush. It must be receiveExtMTPush1

岂我之方法名错了啊?可是VS自动生成的不行能错,参数为未可能错(客户核对过)。

我用浏览器打开这 web service,描述是一个 AXIS web service,难道 .NET
调用 AXIS web service 就那个?看了产 WSDL 也是正规的什么。

于是自己尝试网上说之动态调用方式,折腾来去反射时虽报错,算了瞧外方法吧。

自身怀念寻找一个 web service 调试工具吧,如果还未成事便告诉客户 web service
是无是生题目?我不怕找到了 .NET WebService
Studio,很轻量的一个家伙,几十K。

图片 1

填好EndPoint -> 点击GET获取到方式以及参数列表 ->
选中Input中每个参数输入相应的值 ->
点击Invoke执行,我靠,Output中甚至成功了。

点击 Request/Response看看请求和响应的数量

图片 2

就下好惩治了,把 Request 中之 SOAP 放到 Fiddler 中失去POST一下,成功!

图片 3

VS生成的代理类调用无成事,应该是少了一个HTTP HEADER参数 SOAPAction(不是SOAP
HEADER),这个参数有一定意义,在WSDL中吗堪找到,在跨平台调用时更是常见,大家可以网上搜搜。

 

缓解方案:

  1. 友善组合一个SOAP XML,然后用 HttpClient或WebRequest 来调用 Web
    Service,然后解析返回的XML即可;

  2. 于 .NET WebService Studio 中点击 WSDLs &
    Proxy,里面来代理类和客户端代码,复制到花色中使。

图片 4

相关文章

网站地图xml地图