使用 VC 和 VB 远程调用 Web Service 的完整示例代码
完整的动态引用WebService(VC、VB) 在软件开发中,WebService是一种重要的技术,允许不同平台和语言之间进行数据交换和集成。今天,我们将讨论如何使用VC和VB实现完整的动态引用WebService。 WebService的基本概念 WebService是一种基于XML的远程 Procedure Call(RPC)机制,允许不同的系统和应用程序之间进行数据交换和集成。WebService通常使用SOAP(Simple Object Access Protocol)协议来传输数据,SOAP是一种基于XML的协议,用于定义数据的格式和结构。 使用VC实现WebService调用 在VC中,我们可以使用WebClient类来调用WebService。下面是一个简单的示例代码: ```c WebClient web = new WebClient(); Stream stream = web.OpenRead("http://localhost/FlowEngine/ProcessFlow.asmx?WSDL"); ``` 在上面的代码中,我们首先创建了一个WebClient对象,然后使用OpenRead方法来读取WebService的WSDL文件。WSDL(Web Service Description Language)文件是WebService的描述文件,用于描述WebService的接口和数据类型。 使用VB实现WebService调用 在VB中,我们可以使用WebRequest和WebResponse类来调用WebService。下面是一个简单的示例代码: ```vb Dim web As HttpWebRequest = WebRequest.Create("http://192.168.1.68/hr_service/SearchData.asmx?WSDL") web.Method = "POST" Dim stream As Stream = web.GetRequestStream() ``` 在上面的代码中,我们首先创建了一个HttpWebRequest对象,然后设置了请求方法和URL。然后,我们使用GetRequestStream方法来获取请求流。 解析WSDL文件 在调用WebService之前,我们需要解析WSDL文件以获取WebService的接口和数据类型信息。我们可以使用ServiceDescription类来解析WSDL文件。下面是一个简单的示例代码: ```c ServiceDescription description = ServiceDescription.Read(stream); ``` 在上面的代码中,我们使用ServiceDescription类的Read方法来解析WSDL文件。解析后的结果是一个ServiceDescription对象,该对象包含了WebService的接口和数据类型信息。 生成代理类 在解析WSDL文件后,我们可以使用ServiceDescriptionImporter类来生成代理类。代理类是一个本地类,用于封装WebService的接口和数据类型信息。下面是一个简单的示例代码: ```c ServiceDescriptionImporter importer = new ServiceDescriptionImporter(); importer.ProtocolName = "Soap"; importer.Style = ServiceDescriptionImportStyle.Client; importer.CodeGenerationOptions = CodeGenerationOptions.GenerateProperties | CodeGenerationOptions.GenerateNewAsync; ``` 在上面的代码中,我们创建了一个ServiceDescriptionImporter对象,然后设置了协议名称、样式和代码生成选项。最后,我们可以使用importer对象来生成代理类。 总结 在本文中,我们讨论了如何使用VC和VB实现完整的动态引用WebService。我们首先介绍了WebService的基本概念,然后讨论了如何使用WebClient和WebRequest类来调用WebService。接着,我们讨论了如何解析WSDL文件和生成代理类。最后,我们总结了完整的动态引用WebService的步骤。
'WebClient web = new WebClient();
'Stream stream = web.OpenRead("http://localhost/FlowEngine/ProcessFlow.asmx?WSDL");
Dim web As HttpWebRequest 'Dim web As WebClient = New WebClient()
web = CType(WebRequest.Create(WebUrl), HttpWebRequest)
web.Method = "POST"
Dim sm As Stream = web.GetRequestStream() ' Dim stream As Stream = web.OpenRead(WebUrl) '"http://192.168.1.68/hr_service/SearchData.asmx?WSDL"
'// 2. 创建和格式化 WSDL 文档。
'ServiceDescription description = ServiceDescription.Read(stream);
Dim description As ServiceDescription = ServiceDescription.Read(Stream)
'// 3. 创建客户端代理代理类。
'ServiceDescriptionImporter importer = new ServiceDescriptionImporter();
Dim importer As ServiceDescriptionImporter = New ServiceDescriptionImporter()
'importer.ProtocolName = "Soap"; // 指定访问协议。
'importer.Style = ServiceDescriptionImportStyle.Client; // 生成客户端代理。
'importer.CodeGenerationOptions = CodeGenerationOptions.GenerateProperties | CodeGenerationOptions.GenerateNewAsync;
importer.ProtocolName = "Soap"
importer.Style = ServiceDescriptionImportStyle.Client
importer.CodeGenerationOptions = CodeGenerationOptions.GenerateProperties '| codegenerationoptions.generatenewasync
'importer.AddServiceDescription(description, null, null); // 添加 WSDL 文档。
'''''''''''''''''''''''''''importer.AddServiceDescription(description, Nothing, Nothing)
'// 4. 使用 CodeDom 编译客户端代理类。
'CodeNamespace nmspace = new CodeNamespace(); // 为代理类添加命名空间,缺省为全局空间。
下载后可阅读完整内容,剩余2页未读,立即下载
- 粉丝: 0
- 资源: 3
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 多传感器数据融合手册:国外原版技术指南
- MyEclipse快捷键大全,提升编程效率
- 从零开始的编程学习:Linux汇编语言入门
- EJB3.0实例教程:从入门到精通
- 深入理解jQuery源码:解析与分析
- MMC-1电机控制ASSP芯片用户手册
- HS1101相对湿度传感器技术规格与应用
- Shell基础入门:权限管理与常用命令详解
- 2003年全国大学生电子设计竞赛:电压控制LC振荡器与宽带放大器
- Android手机用户代理(User Agent)详解与示例
- Java代码规范:提升软件质量和团队协作的关键
- 浙江电信移动业务接入与ISAG接口实战指南
- 电子密码锁设计:安全便捷的新型锁具
- NavTech SDAL格式规范1.7版:车辆导航数据标准
- Surfer8中文入门手册:绘制等高线与克服语言障碍
- 排序算法全解析:冒泡、选择、插入、Shell、快速排序