c#中WebService的介绍及调用方式小结
前言
之前做移动端开发,都不清楚WebService是啥东东,现在接触c#,项目中有三处WebService调用,就不得不与其打交道了,最近碰上第三方接口地址更换,而自己项目因功能也需要增加WebService方法,所以了解了下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的几个基础概念:
- XML:扩展性标记语言,用于传输格式化的数据,是Web服务的基础;
- WSDL:Web服务描述语言,通过xml的形式描述服务的地址及调用方式;
- SAOP:基于http+xml的简单对象访问协议,用于数据的网络传输。
SAOP主要有以下几个节点:
Envelope(必须) – 以XML的根元素出现;
Headers(可选) – 常添加一些身份验证数据;
Body(必须) – 包含要执行的服务器的方法和发送到服务器的数据。
示例:
<Envelope> <Header> </Header> <Body> <方法名> 参数 </方法名> </Body> </Envelope>
二、调用方式
WebService调用方式有多种,这里主要说两种:
方式1. 引用wsdl文件
即通过引用wsdl文件的方式直接生成WebService调用类,如下图:
vs+c#引用wsdl调用webService
这种方式适用于使用vs+c#开发的WebService。只需要如上图添加服务引用,根据后面提示输入url,一步步操作即可,调用时与本地方法的调用无异。
这种方式使用很简单,但缺点也不少,如:接口的每次更新都需要重新生成引用、如果接口使用其他语言开发则调用会出现问题。
方式2. 直接WebRequest请求
通过stringbuilder拼接好saop包内容,然后通过webRequest post方式发送,contentType使用"application/soap+xml; charset=utf-8";即可。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。
栏 目:C#教程
本文地址:https://www.xiuzhanwang.com/a1/C_jiaocheng/4995.html
您可能感兴趣的文章
- 01-10C#通过反射获取当前工程中所有窗体并打开的方法
- 01-10关于ASP网页无法打开的解决方案
- 01-10WinForm限制窗体不能移到屏幕外的方法
- 01-10WinForm绘制圆角的方法
- 01-10C#停止线程的方法
- 01-10WinForm实现仿视频播放器左下角滚动新闻效果的方法
- 01-10C#通过重写Panel改变边框颜色与宽度的方法
- 01-10C#实现清空回收站的方法
- 01-10C#实现读取注册表监控当前操作系统已安装软件变化的方法
- 01-10C#实现多线程下载文件的方法
阅读排行
本栏相关
- 01-10C#通过反射获取当前工程中所有窗体并
- 01-10关于ASP网页无法打开的解决方案
- 01-10WinForm限制窗体不能移到屏幕外的方法
- 01-10WinForm绘制圆角的方法
- 01-10C#实现txt定位指定行完整实例
- 01-10WinForm实现仿视频播放器左下角滚动新
- 01-10C#停止线程的方法
- 01-10C#实现清空回收站的方法
- 01-10C#通过重写Panel改变边框颜色与宽度的
- 01-10C#实现读取注册表监控当前操作系统已
随机阅读
- 04-02jquery与jsp,用jquery
- 01-11ajax实现页面的局部加载
- 01-10使用C语言求解扑克牌的顺子及n个骰子
- 08-05DEDE织梦data目录下的sessions文件夹有什
- 01-11Mac OSX 打开原生自带读写NTFS功能(图文
- 08-05dedecms(织梦)副栏目数量限制代码修改
- 01-10C#中split用法实例总结
- 08-05织梦dedecms什么时候用栏目交叉功能?
- 01-10delphi制作wav文件的方法
- 01-10SublimeText编译C开发环境设置