c#webservice接口調用_Windows 桌面应用开发之 C# 调用 WebService 接口

Web Service 是一个平台独立的,低耦合的,自包含的、基于可编程的 Web 的应用程序,可使用开放的 XML(标准通用标记语言下的一个子集)标准来描述、发布、发现、协调和配置这些应用程序,用于开发分布式的互操作的应用程序。

声明:本 Chat 所引用的 WebService 服务只用于技术交流,不可用于商业用途。

一、 WebService 是什么?

Web Services 是应用程序组件

Web Services 使用开放协议进行通信

Web Services 是独立的(self-contained)并可自我描述

Web Services 可通过使用 UDDI 来发现

Web Services 可被其他应用程序使用

XML 是 Web Services 的基础

1. SOA 与 Web Service

SOA(Service-Oriented Architecture,面向服务的体系结构)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统一和通用的方式进行交互。

SOA 是一种粗粒度、松耦合服务架构,服务之间通过简单、精确定义接口进行通讯,不涉及底层编程接口和通讯模型。SOA 可以看作是 B/S 模型、XML/Web Service 技术之后的自然延伸。Web Service 即 Web 服务。

在理解 SOA 和 Web 服务的关系上,经常发生混淆。Web 服务是技术规范,而 SOA 是设计原则。特别是 Web 服务中的 WSDL(Web Services Description Language,Web 服务描述语言),是一个 SOA 配套的接口定义标准,这是 Web 服务和 SOA 的根本联系。从本质上来说,SOA 是一种架构模式,而 Web 服务是利用一组标准实现的服务。Web 服务是实现 SOA 的方式之一。用 Web 服务来实现 SOA 的好处是你可以实现一个中立平台,来获得服务,而且随着越来越多的软件商支持越来越多的 Web 服务规范,你会取得更好的通用性。

Web Service 是解决应用程序之间相互通信的一项技术。严格地说,Web Service 是描述一系列操作的接口。它使用标准的、规范的 XML 描述接口。这一描述中包括与服务进行交互所需要的全部细节,包括消息格式、传输协议和服务位置。而在对外的接口中隐藏了服务实现的细节,仅提供一系列可执行的操作,这些操作独立于软、硬件平台和编写服务所用的编程语言。Web Service 既可单独使用,也可同其他 Web Service 一起,实现复杂的业务功能。

在 Web Service 模型的解决方案中共有三种工作角色,其中服务提供者(服务器)和服务请求者(客户端)是必需的,服务注册中心是一个可选的角色。它们之间的交互和操作构成了 Web Service 的体系结构。服务提供者定义并实现 Web Service,然后将服务描述发布到服务请求者或服务注册中心;服务请求者使用查找操作从本地或服务注册中心检索服务描述,然后使用服务描述与服务提供者进行绑定并调用 Web Service。

2. XML、UDDI、XSD、WSDL

XML(Extensible Markup Language,可扩展标记语言)规定了服务之间以及服务内部数据交换的格式和结构,通过XML 可以将任何文档转换成XML 格式,然后跨越因特网协议传输。XML 是 Web Service 表示数据的基本格式。除了易于建立和易于分析外,XML 主要的优点在于它既是平台无关的,又是厂商无关的。

XML 解决了数据表示的问题,但它没有定义一套标准的数据类型,更没有说怎么去扩展这套数据类型。例如,整形数到底代表什么?16 位、32 位、还是 64 位?这些细节对实现互操作性都是很重要的。W3C 制定的 XML Schema(XSD)就是专门解决这个问题的一套标准。它定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。Web Service 就是用 XSD 来作为其数据类型系统的。

Web Service 建好以后,你或者其他人就会去调用它。SOAP(Simple Object Access Protocol,简单对象访问协议)提供了标准的 RPC 方法来调用 Web Service。SOAP 规范定义了 SOAP 消息的格式,以及怎样通过 HTTP 协议来使用 SOAP。SOAP 也是基于 XML 和 XSD 的,XML 是 SOAP 的数据编码方式。

Web Service 有什么功能,调用的函数参数数据类型是什么,有几个参数等等,这些描述就需要一种语言,这就是WSDL(Web Services Description Language,Web服务描述语言)了。WSDL 本身其实就是一个标准的 XML 文档,用于描述 Web Service 及其函数、参数和返回值。 UDDI(Universal Description, Discovery and Integration,通用描述、发现与集成服务)是一种目录服务࿰

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要使用C#调用Web服务接口,可以按照以下步骤进行操作: 1. 引用WebService:首先,需要引用WebService的命名空间,例如using System.Web.Services;。 2. 创建代理类:使用Visual Studio或者通过命令行工具生成代理类,通过生成的代理类可以直接调用Web服务中的方法。可以使用命令行工具wsdl.exe来生成代理类,命令示例如下:wsdl /language:c# /out:生成的代理类路径 /url:WebService的URL或者WSDL文件路径。 3. 创建WebService对象:在代码中创建WebService对象,并设置其属性,例如WebClient对象的Credentials属性可以设置身份验证信息。 4. 调用Web服务方法:通过创建的代理类对象,调用Web服务中的方法。可以将方法的输入参数传递给Web服务方法,并接收返回值。 5. 解析返回结果:根据Web服务方法的返回类型,解析返回结果,可以使用XmlReader或者XmlDocument来解析返回的XML数据,也可以使用DataContractSerializer或者XmlSerializer进行反序列化。 6. 处理异常:在调用Web服务方法时,可能会抛出异常,需要进行异常处理。可以使用try-catch语句捕获异常,并根据具体情况进行处理。 总结: 要使用C#调用Web服务接口,首先引用WebService的命名空间,然后生成代理类,创建WebService对象并调用方法,最后解析返回结果和处理异常。这样就可以实现C#对Web服务接口调用了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [C#动态webservice调用接口](https://download.csdn.net/download/weixin_38657139/13786952)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [c# 三种方法调用WebService接口](https://download.csdn.net/download/weixin_38567956/13708848)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [C#调用webservice接口的最新方法教程](https://download.csdn.net/download/weixin_38556189/13999366)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值