我使用的是静态调用,这是最便捷的方法,使用本地xml文件调用。
首先在可以访问WebService的电脑用浏览器打开?wsdl地址,保存成xml文件,拷贝到本地,在项目中添加服务引用,再把本地xml文件的路径(如)复制到下图的地址框中,点击转到,在绿色的框里会显示“在地址???处找到1个服务”,可修改命名空间,最后点击确认。在代码的【Connected Services】文件夹下,可以找到【Reference.cs】的文件,这里面有引用WebService的方法。
接下来就是调用WebService的方法,需要添加引用:
using ServiceReference1;
using System.ServiceModel;
再调用方法:
public string Test(string code){
ServiceReference1.TestRequest tests = new ServiceReference1.TestRequest();
BasicHttpBinding binding = new BasicHttpBinding();
binding.MaxBufferSize = int.MaxValue;
binding.MaxBufferPoolSize = int.MaxValue;
binding.MaxReceivedMessageSize = int.MaxValue;
System.ServiceModel.EndpointAddress endpointAddress = new EndpointAddress("http://127.0.0.1/TestDemo.asmx");//http://127.0.0.1/TestDemo.asmx为WebService地址
ServiceReference4.TestDemoSoapClient testDemo = new TestDemoSoapClient(binding, endpointAddress);
var s = testDemo.TestAsync(code);//TestAsync为方法,code为入参
string str = s.Result.Body.TestResult;//出参
return str;
}