C#通过HttpWebRequest调用WebService并获取返回数据
![](https://csdnimg.cn/release/wenkucmsfe/public/img/starY.0159711c.png)
在C#编程中,利用HttpWebRequest类调用Web服务(Webservice)是一种常见的网络通信方式,特别是在需要与XML-RPC或SOAP服务进行交互时。以下是一个详细的步骤演示如何通过HttpWebRequest实现从一个URL调用Web服务方法,并处理返回的数据。
首先,我们来看`GetWebMethodReturn`函数的核心部分。这个函数的主要目的是构造SOAP消息体,因为Web服务通常使用SOAP(简单对象访问协议)作为数据交换格式。它接收三个参数:
1. `url`:这是Web服务的URL地址,用于发起请求。
2. `methodName`:要调用的服务方法名称,每个Web服务都有特定的方法名来执行特定的操作。
3. `parms`:包含传递给服务方法的参数,这可以是XML字符串或者其他格式的数据。
函数开始创建一个StringBuilder,用于构建SOAP消息。首先添加XML声明,定义命名空间和版本信息。然后,创建SOAP Envelope、Body,并嵌套指定的Web服务方法调用。这里的方法名前加上了命名空间("http://tempuri.org/"),表明这是要调用的服务接口。接下来,将`parms`字符串插入到方法调用部分,表示传递的实际参数。
接下来,将构造好的SOAP消息转换为字节数组(byte[]),以便通过HTTP POST请求发送。创建一个HttpWebRequest对象,设置其方法为"POST",因为Web服务通常使用POST请求来提交数据。同时,设置Content-Type为"application/soap+xml;charset=utf-8",明确告诉服务器我们正在发送的是SOAP XML格式的数据。
然后,使用`GetRequestStream()`方法获取请求流,并将构建的字节数组写入流中。这意味着数据已经成功发送到了Web服务端。
最后,为了接收服务器的响应,创建一个HttpWebResponse对象,并将其保存在`myResponse`变量中。使用`GetResponseStream()`方法获取响应流,读取返回的数据并将其转换为字符串,存储在`responseString`变量中。这将是服务方法执行后返回的结果。
总结来说,这个C#示例展示了如何使用HttpWebRequest来调用Web服务的方法,并处理返回的数据。它涉及到了XML消息格式的构造、HTTP请求的设置以及服务器响应的解析。掌握这个技术对于开发需要与外部系统交互的C#应用程序至关重要。
2871 浏览量
1287 浏览量
168 浏览量
2020-09-05 上传
308 浏览量
2011-11-28 上传
256 浏览量
1487 浏览量
![](https://profile-avatar.csdnimg.cn/6e74cbc38a764217b744aa4a92c73bcc_zhuchenchangk163.jpg!1)
会弹钢琴的工程师
- 粉丝: 5
最新资源
- ACCP4.0 s1 试题解析:C语言与Java编程测试
- 清华大学《VC++程序设计》教学大纲详解:60学时培养编程高手
- 理解并应用ServletContext接口在Web开发中的关键作用
- C# 2.0泛型:高效数据结构与编程模型详解
- Oracle数据库对象管理:表空间、数据文件与SQL处理
- Oracle 10g数据库安全管理详解
- Eclipse 3.2中配置Oracle和SQL Server JDBC驱动及故障排查指南
- PL/SQL入门:用户定义记录与流程控制
- Oracle TOAD工具深度培训:安装、环境设置与功能详解
- JSR-220: EJB 3.0与Java Persistence API规范详解
- ASP.NET 2.0数据库入门教程:简化编程与数据集成
- VB6 ListView 控件详解与实例操作
- Java实现猜数字小游戏
- C#编程指南第四版: Jesse Liberty 著名著作
- Visual Basic Winsock控件详解
- OWL Web本体语言指南:中文翻译版