Web Service 基础使用

本文详细介绍了WebService技术,包括其基于SOAP协议的XML数据交换、部署要求、核心组件如SOAP、WSDL和UDDI,以及如何创建和调用WebService,同时涵盖了跨域问题的处理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Web Service

web service 是一种跨编程语言 和 跨操作系统 平台的远程调用技术 就是一种数据接口
采用了标准的 SOAP 协议传输 遵循w3c的标准 xml传输
不同数据,不同服务 ,进行数据交互 的web 服务接口

特点

  1. 基于 SOAP 协议的,传输数据是XML格式
  2. 只支持 http 协议
  3. 不是开源的,但是可以被任意一个了解xml的人使用
  4. 只能部署在iis 服务器上

核心组件

xml 和html
SOAP简单对象访问协议
WSDlweb service描述语言【是w3c基于xml 给web service 提供的特有的xml格式】
UDDI统一描述、发现和继承协议
soap 简单对象访问协议

【相当于http+xml】

wsdl

相当于Web Service 说明文档
链接地址后拼接?wsdl 可以查看xml文件
在这里插入图片描述

wsdl 文档 的基础标签节点

  1. :服务视图
  2. :消息格式的定义
  3. 可执行方法,以及描述信息
  4. 定义参数的相关信息的定义
  5. 节点:全部使用的数据类型
uddi

独立的框架 统一描述

调用web service

创建web service

在这里插入图片描述

创建的方法 要对外调用的话 需要添加[WebMethod] 特性
在这里插入图片描述

服务引用

在这里插入图片描述
在这里插入图片描述
添加web service 成功后
在这里插入图片描述
使用
首先要拿到服务的对象,然后通过对象调用方法
在这里插入图片描述

//调用 web service 接口 1.
ServiceReference1.WebService1SoapClient sesoap= new ServiceReference1.WebService1SoapClient();
string ss =sesoap.GetData();
var slist=JsonConvert.DeserializeObject(sesoap.GetData());

如果web service 中添加了新的 处理,需要更新一下服务引用
请添加图片描述
** 一定 要 开启 web service **

ajax 调用
get请求

xml和json 取决于 接口方法返回值

get请求调用

//ajax get方式的简写
 $.get("https://localhost:44323/WebService1.asmx/GetData", function (res) {
      //处理xml数据
      res = JSON.parse(res.getElementsByTagName('string')[0].innerHTML)
      console.log(res)
}, "xml")
post 请求

数据 json格式为 object,微软框架默认的是{“d”:“后台返回数据”} d才是后台返回的数据
请添加图片描述

 //调用json格式数据
//post 请求
$.ajax({
      type:"post",
      url:"https://localhost:44323/WebService1.asmx/GetDatajson",
      data:"{total:30}",
      contentType:"application/json",
      dataType: "json",
      success: function (res) {
         console.log(JSON.parse(res.d))
         console.log(res)
  }
})

注:
接口端 类上的需要 添加此行注解【创建web service 时自动生成 一般自动注释】请添加图片描述
在调用接口时、使用web service任何操作时 都需要保证web service 的运行 否则无法获取任何链接

跨域
同源和不同源

协议 域名 端口 都相同被称为同源 任意不同 就会产生跨域问题
http://www.a.com:8000
协议[http] 域名[www.a.com] 端口[:8000] 未写端口号默认 8080

跨域问题处理、需要在其他机器上访问,需要在 web.config 中进行配置 因为是接口进行跨域,所以配置在接口的web.config中
在这里插入图片描述

<system.webServer>
		<!--配置为列出此目录的内容-->
		<directoryBrowse enabled="true"/>
		<!--允许进行跨域请求-->
		<httpProtocol>
			<customHeaders>
				<add name="Access-Control-Allow-Origin" value="*"/>
				<add  name="Access-Control-Allow-Headers" value="*"/>
				<add  name="Access-Control-Allow-Methods" value="OPTIONS,POST,GET"/>
			</customHeaders>
		</httpProtocol>
	</system.webServer>

 <system.web>
	  <!--允许远程调用web service-->
	  <webServices>
		  <protocols>
			  <add name="HttpPost"/>
			  <add name="HttpGet"/>
		  </protocols>
	  </webServices>
 </system.web>
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值