c#中WebService的介绍及调用方式小结

作者:ThinkinLiu 时间:2021-05-29 00:10:17 

前言

之前做移动端开发,都不清楚WebService是啥东东,现在接触c#,项目中有三处WebService调用,就不得不与其打交道了,最近碰上第三方接口地址更换,而自己项目因功能也需要增加WebService方法,所以了解了下WebService及其调用。

c#中WebService的介绍及调用方式小结

C-sharp in itlao5.com

一、概念

Web Service也叫XML Web Service WebService是一种可以接收从Internet或者Intranet上的其它系统中传递过来的请求,轻量级的独立的通讯技术。是:通过SOAP在Web上提供的软件服务,使用WSDL文件进行说明,并通过UDDI进行注册。简单的理解就是:webservice就是放在服务器上的函数,所有人都可以调用,然后返回信息。 比如google就有一个web service ,你调用它就可以很容易的做一个搜索网站。 就像调用函数一样,传入若干参数(比如关键字、字符编码等),然后就能返回google检索的内容(返回一个字符串)。

WebService:我们可以理解为基于web的服务,它具有跨语言,跨平台的特性,通过web/http的方式实现远程调用,可以让程序的数据操作与功能模块分离。

WebService的几个基础概念:

  1. XML:扩展性标记语言,用于传输格式化的数据,是Web服务的基础;

  2. WSDL:Web服务描述语言,通过xml的形式描述服务的地址及调用方式;

  3. SAOP:基于http+xml的简单对象访问协议,用于数据的网络传输。

SAOP主要有以下几个节点:

Envelope(必须) – 以XML的根元素出现;

Headers(可选) – 常添加一些身份验证数据;

Body(必须) – 包含要执行的服务器的方法和发送到服务器的数据。

示例:


<Envelope>
<Header>
</Header>
<Body>
 <方法名>
  参数
 </方法名>
</Body>
</Envelope>

二、调用方式

WebService调用方式有多种,这里主要说两种:

方式1. 引用wsdl文件

即通过引用wsdl文件的方式直接生成WebService调用类,如下图:

c#中WebService的介绍及调用方式小结
vs+c#引用wsdl调用webService

这种方式适用于使用vs+c#开发的WebService。只需要如上图添加服务引用,根据后面提示输入url,一步步操作即可,调用时与本地方法的调用无异。

这种方式使用很简单,但缺点也不少,如:接口的每次更新都需要重新生成引用、如果接口使用其他语言开发则调用会出现问题。

方式2. 直接WebRequest请求

通过stringbuilder拼接好saop包内容,然后通过webRequest post方式发送,contentType使用"application/soap+xml; charset=utf-8";即可。

来源:https://www.jianshu.com/p/2d75f65be739

标签:c#,webservice,调用
0
投稿

猜你喜欢

  • Java并发编程之显示锁ReentrantLock和ReadWriteLock读写锁

    2023-06-04 04:54:22
  • MyBatis if test 判断字符串相等不生效问题

    2021-10-11 22:42:01
  • 浅谈Java中ThreadLocal内存泄露的原因及处理方式

    2021-06-12 21:08:37
  • 替换so文件来动态替换Flutter代码实现详解

    2023-06-23 16:24:06
  • Java实现循环体的过滤器的方法

    2023-11-22 09:35:33
  • 解决SpringBoot web项目启动后立即关闭的问题

    2023-07-26 02:33:37
  • Java开发微信公众号接收和被动回复普通消息

    2022-04-07 12:30:44
  • Android studio 3.5.2安装图文教程详解

    2022-06-27 19:15:46
  • springboot动态定时任务的实现方法示例

    2023-04-20 15:59:58
  • Java实现双保险线程的示例代码

    2023-09-21 07:59:46
  • SpringBoot中Jackson日期格式化技巧分享

    2022-05-21 01:40:24
  • Java反射机制基础详解

    2023-07-17 04:36:29
  • java 请求跨域问题解决方法实例详解

    2023-08-24 02:55:11
  • 基于C#实现乱码视频效果

    2022-01-25 14:29:56
  • SpringBoot 整合 Shiro 密码登录的实现代码

    2023-11-10 11:27:59
  • SpringBoot实现过滤器拦截器的耗时对比

    2022-04-12 00:45:04
  • Java中使用Lambda表达式和函数编程示例

    2022-05-06 03:30:40
  • Java sha1散列算法原理及代码实例

    2021-06-28 05:50:22
  • C#反射之基础应用实例总结

    2023-08-29 04:50:56
  • SpringMVC教程之文件上传与下载详解

    2022-12-21 03:49:09
  • asp之家 软件编程 m.aspxhome.com