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

C-sharp in itlao5.com

一、概念

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

WebService的几个基础概念:

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

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

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

SOAP主要有以下几个节点:

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

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

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

示例:

参数

方法名>

二、调用方式

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

方式1. 引用wsdl文件

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

vs+c#引用wsdl调用webService

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

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

方式2. 直接WebRequest请求

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

//代码示例后续有时间补充

当然还有其他方式可以调用WebService,如动态调用等,因为我用到的就只有上面两种,这里就不探究其他方式了。

IT老五(it-lao5):关注公众号,一起源创,一起学习!

作者:ThinkinLiu

vue 调用webservice_c#:WebService及其几种调用方式相关推荐

  1. js定义全局变量 vue页面_详解Vue.js 定义全局变量的几种实现方式

    详解Vue.js 定义全局变量的几种实现方式 发布于 2020-8-11| 复制链接 本篇文章主要介绍了VUE 全局变量的几种实现方式,小妖觉得挺不错的,现在分享给大家,也给大家做个参考.一起跟随小妖 ...

  2. WebService客户端三种调用方式整理

    1 WebService基础 1.1 作用 1,       WebService是两个系统的远程调用,使两个系统进行数据交互,如应用: 天气预报服务.银行ATM取款.使用邮箱账号登录各网站等. 2, ...

  3. Java中complex怎么被调用_java中存在三种调用机制

    1:同步调用:一种阻塞式调用,调用方要等待对方执行完毕才返回,它是一种单向调用 2:回调:一种双向调用模式,也就是说,被调用方在接口被调用时也会调用对方的接口: 3:异步调用:一种类似消息或事件的机制 ...

  4. WebService客户端几种实现方式

    文章目录 一.发布一个webservice服务(jdk原生) 1.编写服务接口 2.服务实现类 3.发布服务 4.浏览器查看是否发布成功 二.几种客户端调用方式 1.jdk原生调用(需要获取服务接口文 ...

  5. java 调用.net webservice axis2_java利用axis2调用.net写的webservice,传递自定义的实体类参数...

    利用axis2可以很方便的自动生成客户端代码,同时对复杂参数类型的传递也很方便,本文的服务端以.net开发,有一个自定义的实体类作为参数,客户端用java,简单介绍一下利用axis2的wsdl2jav ...

  6. 调用第三方接口的几种请求方式

    第一种方式: String url4="https://www.showmebug.com/open_api/v1/interviews"; json=new JSONObject ...

  7. vue路由传参的三种基本方式 - 流年的樱花逝 - SegmentFault 思否

    现有如下场景,点击父组件的li元素跳转到子组件中,并携带参数,便于子组件获取数据. 父组件中: <li v-for="article in articles" @click= ...

  8. vue路由传参的三种基本方式

    一: getDescribe(id) { // 直接调用$router.push 实现携带参数的跳转this.$router.push({path: `/describe/${id}`,}) 方案一, ...

  9. vue路由懒加载--2种实现方式

    (1)vue异步组件-路由懒加载 component:resolve=>(['需要加载的路由的地址',resolve]) (2)import  实现路由懒加载 [ 推荐 ] const Hell ...

最新文章

  1. vue.js的一些事件绑定和表单数据双向绑定
  2. pl0源码(可在delphi7中运行)
  3. OpenCV3学习(12.2) 目标跟踪之运动模板法segmentMotion实现(Mat版本)
  4. Linux(4) 实用指令
  5. 如何发布自己的 Composer 包
  6. phpstudy配置SSL证书的步骤(Apache环境)以及一些注意事项
  7. FileSplit.exe
  8. 如何使用免费的WordPress FooGallery插件创建图像库
  9. 寒假第二周学习总结与反思
  10. 要点初见:开源AI绘画工具Stable Diffusion代码分析(文本转图像)、论文介绍(下)
  11. 【大咖来了】---中国HBase技术社区MeetUp
  12. netty使用中的LEAK: ByteBuf.release() was not called before it‘s garbage-collected
  13. SpringBoot里参数校验/参数验证
  14. 《安富莱嵌入式周报》第295期:世界杯球员和足球实时跟踪,开源手持矢量网络分析仪,自制柔性电容式传感器,IAR加强对VSCode支持、索尼早期PSX的光驱模拟器
  15. 分享一些数据库使用的心得
  16. android uri图片压缩,详解android 通过uri获取bitmap图片并压缩
  17. 利用dpabi和restplus提取ROI灰质体积学习笔记
  18. 南陵中学2021高考成绩查询,2018年南陵中学高考成绩喜报
  19. 利用python打开Matlab的mat文件
  20. ❤❤全网最全-----VUE3.0最火爆的编辑器《TinyMCE》❤❤

热门文章

  1. ztlpri.dll,SysWin64.Sys,wgdpri.dll等病毒手动解决
  2. pako java_java压缩字符串,前端接收pako解压
  3. r6220 虚拟服务器,R6220折腾记录 2021-06-15 最终还是刷了openwrt
  4. web端分屏异显实现-Angular+Electron
  5. DELMIA软件 机器人IK的设定
  6. 高科技供应链管理方案:帮助招采经理实现投资回报率最大化
  7. 最全的Apache Doris教程(收藏版)共9万+字【第一篇】由于是typora编写,有部分图片在本地,识别不出来,请细聊我
  8. ubuntu 安装 open-falcon falcon-plus
  9. 服务器带宽50M能带动多少人同时在线?
  10. 步进电机A4988 中文说明