话说是这样的,这两天开发一个短信发送功能,客户给了一个 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。

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

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

这下好办了,把 Request 中的 SOAP 放到 Fiddler 中去POST一下,成功!

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

解决方案:

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

2. 在 .NET WebService Studio 中点击 WSDLs & Proxy,里面有代理类和客户端代码,复制到项目中使用。

最新文章

  1. MySQL 常用的sql语句小结(待续)
  2. 安装完magento后,其他电脑无法访问magento,URL自动跳转到http://localhost/magento
  3. WebStorm工具插件下载安装
  4. objective-c可变数组
  5. 《图形学》实验三:DDA算法画直线
  6. iTween研究院之学习笔记Move移动篇
  7. 简单地使用jquery的validate
  8. cannot be cast to javax.servlet.Servlet
  9. PowerMockito使用详解
  10. 如何将sqlserver的windows验证模式改为SQL Server 和 Windows 混合身份验证模式
  11. Keepalived详解(三):Keepalived基础功能应用实例【转】
  12. Linux系列教程(四)——Linux常用命令之文件和目录处理命令
  13. PHP抓取网页内容经验总结
  14. Python文件操作---正斜杠与反斜杠
  15. C# 委托例子
  16. [转] Android中的设计模式-备忘录模式
  17. iOS.NS_DEPRECATED_IOS
  18. vs2017安装cuda9.0编译默认示例失败解决方法
  19. wcf会话、实例化、并发
  20. 使用git错误日志

热门文章

  1. XML 解析的两种方法
  2. [RequireComponent(typeof(....))]
  3. 2018.10.31 bzoj4737: 组合数问题(lucas定理+容斥原理+数位dp)
  4. Basic Router Architecture
  5. c++关键字static的作用
  6. s4-介质访问控制子层-1 MAC子层
  7. 微信小程序两种滑动方式
  8. js实现锚点定位
  9. MongoDB、redis、memcached
  10. bzoj1212(trie+dp)