.netwebservicestudio是一款使用人群最多,口碑最好,功能最强大的webservice测试工具,这款webservice测试工具为微软开发,为完全免费版,马上下载使用吧。
基本介绍
这款工具出自微软内部,最大的优点是可视化很好,不用去看那些xml文件,WebService的基础内容就有XML
从上图可以看到,操作上也很方便,只需要把Service部署到IIS后,在WSDLEndPoint中输入这个要测的Service的URL,点击Get按钮,就能把Service要输入的参数列表取出来,测试的时候只需要在输入参数的值,点击Invoke按钮,就可以得到结果,结果也是一样,一边为参数,一边为值,检查起来很方便。同时参数的类型也能显示出来。
使用实例
用.NETWebServiceStudio调试WebService解决SOAPAction的问题
话说是这样的,这两天开发一个短信发送功能,客户给了一个WebService地址(没有文档),让我调用就可以发送了,
我在VS2013添加了服务引用,一切正常,可是执行代理方法时,怎么都报错
RPCMessagereceiveExtMTPushRequest1inoperationreceiveExtMTPush1hasaninvalidbodynamereceiveExtMTPush.ItmustbereceiveExtMTPush1
难道我的方法名错了吗?可是VS自动生成的不可能错,参数也不可能错(客户核对过)。
我用浏览器打开这个webservice,描述是一个AXISwebservice,难道.NET调用AXISwebservice就不行?看了下WSDL也是标准的啊。
于是我尝试网上说的动态调用方式,折腾来去反射时就报错,算了看看其它方法吧。
我想找一个webservice调试工具吧,如果再不成功就告诉客户webservice是不是有问题?我就找到了.NETWebServiceStudio,很轻量的一个工具,几十K。
填好EndPoint->点击GET获取到方法和参数列表->选中Input中每个参数输入相应的值->点击Invoke执行,我靠,Output中居然成功了。
点击Request/Response看看请求和响应的数据
这下好办了,把Request中的SOAP放到Fiddler中去POST一下,成功!
VS生成的代理类调用不成功,应该是少了一个HTTPHEADER参数SOAPAction(不是SOAPHEADER),这个参数有一定意义,在WSDL中也可以找到,在跨平台调用时尤为常见,大家可以网上搜搜。
解决方案:
1.自己组合一个SOAPXML,然后用HttpClient或WebRequest来调用WebService,然后解析返回的XML即可;
2.在.NETWebServiceStudio中点击WSDLs&Proxy,里面有代理类和客户端代码,复制到项目中使用。