C#调用webservice接口的最新方法教程

2019-12-30 18:50:12于丽

在我们向其它公司提供webservice的时候,经常也会出现这样的问题,以前我们一直都以为SOAP UI能够调用,那么代码也就一定能够调用得通,但经过实践,我们自己写DEMO调用自己的webservice时才发现,并不是别人的调用代码写的有问题,因为我们自己也无法将自己写的webservice调用得通,或者说没有找到正确的方法调用得通。

这时我们就要思考是否是SOAP UI能够调用得通的webservice就代码一定调用没有问题呢?或者说SOAP UI调用webservice和代码调用webservice的原理区别到底在哪里呢?

总结一下:

(1)SOAP UI能够调用成功,代码不一定能够调用成功,代码调用成功并且得到返回结果的前提是webservice可以按标准返回结果,但SOAP UI是只要按信封返回就可以收到结果而不管结果是否标准;

(2)如果webservice的header有用户名和密码的校验,使用SOAP UI可以调用成功并且得到返回结果,但使用上面web引用的方式却不行。对于这种情况,有以下方法可以调用成功:

重复上面web引用的方式,另外引用Microsoft.Web.Services3(这个DLL可以在这里下载)。

c#调用webservice接口,c#调用webservice代码,c#,webservice

手工修改Reference.cs

c#调用webservice接口,c#调用webservice代码,c#,webservice

c#调用webservice接口,c#调用webservice代码,c#,webservice

以下是调用方法,重点在传入用户名和密码,修改继承类的重点也在于此;

c#调用webservice接口,c#调用webservice代码,c#,webservice

引用完成,调用就会成功了,结果如下:

c#调用webservice接口,c#调用webservice代码,c#,webservice

从上面可以看出web引用真的是简单粗暴,基本不用写几句代码就可以搞定绝大部分的webservice调用。

但是web引用却有在现实开发中常遇到的缺点:

(1)需要开发环境可以访问到的wsdl地址;

(2)如果webservice有变化需要更新web引用;

c#调用webservice接口,c#调用webservice代码,c#,webservice