下面是关于"c#动态调用Webservice的两种方法实例"的完整攻略。
一、使用Visual Studio生成Web服务引用
1. 根据WebService的URL生成引用
在Visual Studio中,右键选择项目 -> 添加服务引用(Add Service Reference),在弹出的窗口中输入WebService的URL地址,然后单击“Go”按钮开始检索WebService,等待一会儿即可看到WebService相关信息,如果检索正常,单击“OK”按钮即可,此时Visual Studio会自动生成WebService的代理类。
2. 引用生成的代理类
生成了代理类后,接下来只需要实例化该代理类即可调用WebService提供的服务。如下所示:
ServiceReference1.WebService1SoapClient client = new ServiceReference1.WebService1SoapClient();
string result = client.GetData(1);
以上代码实例化了生成的代理类(这里WebReference1是我添加的引用名称),然后通过该代理类调用GetData方法。GetData方法的返回值是字符串类型,表示WebService的返回结果。
二、使用HTTP请求方式调用WebService
如果无法使用Visual Studio自动生成Web服务引用或想要手动控制WebService的HTTP请求,可以使用HttpWebRequest类和HttpWebResponse类来构建请求。下面是一个示例:
//1.构造Url地址
string url = "http://localhost:1620/WebService1.asmx/HelloWorld";
//2.创建请求对象webRequest
HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create(url);
//3.设置请求方式和ContentType
webRequest.Method = "GET";
webRequest.ContentType = "application/json";
//4.获取响应对象webResponse
HttpWebResponse webResponse = (HttpWebResponse)webRequest.GetResponse();
//5.获取响应流
StreamReader streamReader = new StreamReader(webResponse.GetResponseStream(), Encoding.UTF8);
string responseStr= streamReader.ReadToEnd();
//6.关闭对象
streamReader.Close();
webResponse.Close();
以上示例中,我们手动创建了HttpWebRequest类实例,并使用该类的方法发送GET请求来调用WebService。需要注意的是,如果是POST请求需要设置RequestStream属性来传递参数。此外,还需要设置请求的ContentType(Content-Type)来传递参数的类型。
以上就是关于“c#动态调用Webservice的两种方法实例”的完整攻略,其中第一种方法使用Visual Studio生成Web服务引用,第二种方法使用了HttpWebRequest类和HttpWebResponse类来手动构建HTTP请求调用WebService。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:c#动态调用Webservice的两种方法实例 - Python技术站