用.NET WebService Studio调试Web Service解决SOAPAction的问题
话说是这样的,这两天开发一个短信发送功能,客户给了一个 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,里面有代理类和客户端代码,复制到项目中使用。

用.NET WebService Studio调试Web Service解决SOAPAction的问题的更多相关文章
- 监听调试web service的好工具TCPMon
监听调试web service的好工具TCPMonhttp://ws.apache.org/commons/tcpmon/download.cgi TCPMon Tutorial Content In ...
- 问题:webservice浏览后 无法输入参数;结果:调试Web Service时不能输入参数的解决办法
使用.NET 开发Web Service,有一个很方便的功能就是可以通过IE直接测试Web Service.当你的Web Service的参数都是元数据类型,那么只要你使用IE浏览Web Servic ...
- 翻译-使用Spring WebService生成SOAP Web Service
原文链接:http://spring.io/guides/gs/producing-web-service/ 生成SOAP web service 该指南将带领你使用Spring创建一个基于SOAP的 ...
- 工作笔记 | Visual Studio 调用 Web Service
引言 最近笔者负责ERP财务系统跟中粮集团财务公司的财务系统做对接,鉴于ERP系统中应付结算单结算量比较大,而且管理相对集中,ERP系统与中粮财务公司的支付平台系统对接,实现银企直联,将网银录入的环节 ...
- Visual studio调试Web发生未能正常启动IIS express
今天调试web时,不知道怎么搞的,昨天还好好的,结果今天怎么也没法调试了.VS里报的错误是进程号为**的未能正常启动,看了下调试时IIS压根就没启动起来,没关系,看看事件管理器里发生了什么 找到个最关 ...
- viusal studio 调试错误及解决方法(长期更新记录)
1.为了看运行结果加了 system("pause"):结果导致图像显示不出来,数据为空.主要是因为system pause后停止计算.图像显示不出来.应该改成:waitKey(0 ...
- Web Service(1.8)
“基于 XMLWeb Service 的 Java API”(JAX-WS)通过使用注释来指定与 Web Service 实现相关联的元数据以及简化 Web Service 的开发.注释描述如何将 ...
- Web Service那点事
出现 如今基于浏览器的client应用程序越来越流行,而从开发角度来看,一方面是client浏览器的安装配置不再须要我们再去花费非常大的精力.还有一方林则是由于client和server之间通信的问题 ...
- Web Service(上)
1.XML CDATA指不应由XML解析器进行解析的文本数据. 在XML元素中,<和&是非法的.解析器会把字符<解释为新元素的开始,把字符&解释为字符实体的开始. 某些文本 ...
随机推荐
- one or more
想到以后如果一直都是这样,那么以后的生活是多么多么可怕啊. 感觉毫无期盼.没有意义. 如果变得理所当然那是多么多么让人害怕的事,吓得让人发抖. 所以在以后漫长的岁月里,还是一个人吧 如果相互看不惯,感 ...
- Git工具和GitHub的使用
一.Git工具的安装 1)centos系统下安装 1.1)查看环境 [root@gitlab ~]# rpm -qa centos-release centos-release--4.1708.el7 ...
- 前端之javascript的节点操作和Event
一 节点的增删改查 创建节点:createElement(标签名):创建一个指定名称的节点. 追加节点: 追加一个子节点:somenode.appendChild(标签名) 指定某个位置前面添加一个节 ...
- git安装项目步骤
1.git clone git@gitee(github).com:项目地址.git 2.cd 项目根目录 3.composer install 4.如果需要数据迁移,cmd中到项目根目录 php a ...
- vue-cli引入mui的步骤
不用npm安装了 1.mui官方GitHub下载mui所需文件 https://github.com/dcloudio/mui 把下载来的dist文件夹整个复制到static文件夹中 2.在index ...
- scrapy知识积累
Scrapy 中文文档https://scrapy-chs.readthedocs.io/zh_CN/latest/intro/overview.html 创建项目 scrapy startproje ...
- boost-断言
标准assert宏的原型声明在<assert.h>中,其作用是如果它的测试条件为假,则调用abort()终止程序执行,程序退出的时候会弹出一个错误提示框,并向控制台输出所在文件及行号.as ...
- CString成员函数详解[转]
1.构造函数(常用) CString( const unsigned char* psz ); 例:char s[]="abcdef"; cha ...
- struct sk_buff和struct net_device
1.struct sk_buff 1.1概念 sk_buff是是linux内核中描述数据包的结构体,可在各个协议层之间传递,如数据链路层.网络层.运输层 1.2成员组成 1)布局 sk_buff是一个 ...
- 第07章:MongoDB-CRUD操作--文档--创建
①语法 insert() save() --有修改没有新增 insertOne() [3.2版本新增]向指定集合中插入一条文档数据 insertMany() [3.2版本新增]向指定集合中插入多条文 ...