WebService 基础知识点和用Postman调试

简介: 阅读连接:Retrofit 用Soap协议访问WebService 详解参考1、java发HTTP POST请求(内容为xml格式)2、 android解析XML总结(SAX、Pull、Dom三种方式)3、Android利用Soap读取WebService并且解析XML的DataSet数据前言1、首先不要把这个想的太复杂,它就是使用【soap】协议的请求,数据格式都是【xml】,基础还是http的post请求,但是它的规范显然更多一些,总体逃不过【Request和Response】。

阅读连接:Retrofit 用Soap协议访问WebService 详解

参考

1、java发HTTP POST请求(内容为xml格式)
2、 android解析XML总结(SAX、Pull、Dom三种方式)
3、Android利用Soap读取WebService并且解析XML的DataSet数据

前言

1、首先不要把这个想的太复杂,它就是使用【soap】协议的请求,数据格式都是【xml】,基础还是http的post请求,但是它的规范显然更多一些,总体逃不过【Request和Response】。
2、以下所有的范例都是使用 【 WeatherWebService 】 这个网站,它提供了【Soap1.1 和 Soap1.2 】的请求范例,有【Request和Response】报文可看,这样更好理解规范和格式
注意点:
1、Soap1.1 、Soap1.2 :不同版本协议,代表的header和xml都略有不同
2、Baseurl、Header(Content-type、SOAPAction)、RequestBody(Xml)、ResponseBody(Xml)
3、RequestBody(Xml):Envelope,NameSpace、Body、Method、Param
3、ResponseBody(Xml):Envelope,NameSpace、Body、Method、Param

WebService 基础与注意点

举例:天气网站-获得某省份下所有城市

Soap1.1:

1、xmlns后基本都是namespace,比如envelopse标签有三个namespace,getSupportCity这个方法名有一个namespace
2、区分soap1.1的是:【xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"】
3、soap1.1的请求header有:【Content-Type: text/xml; charset=utf-8 】和【SOAPAction: "http://WebXml.com.cn/getSupportCity"】

//-------------------------------------Request------------------------------------
POST /WebServices/WeatherWebService.asmx HTTP/1.1
Host: www.webxml.com.cn
Content-Type: text/xml; charset=utf-8   //header中的哦~~
Content-Length: length
SOAPAction: "http://WebXml.com.cn/getSupportCity"  //header中的哦~~

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  //标记为soap1.1协议
  <soap:Body>
    <getSupportCity xmlns="http://WebXml.com.cn/">  //method和其namespace
      <byProvinceName>string</byProvinceName>     //param
    </getSupportCity>
  </soap:Body>
</soap:Envelope>

//-------------------------------------Response------------------------------------
HTTP/1.1 200 OK
Content-Type: text/xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <getSupportCityResponse xmlns="http://WebXml.com.cn/">  //结果集啦~~
      <getSupportCityResult>
        <string>string</string>
        <string>string</string>
      </getSupportCityResult>
    </getSupportCityResponse>
  </soap:Body>
</soap:Envelope>
Soap1.2:

1、略,同上
2、区分soap1.2的是:【xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"】
3、soap1.2的请求header有:【application/soap+xml; charset=utf-8 】和没有【SOAPAction】

//-------------------------------------Requeset------------------------------------
POST /WebServices/WeatherWebService.asmx HTTP/1.1
Host: www.webxml.com.cn
Content-Type: application/soap+xml; charset=utf-8  //header中的,与soap1.1不同哦,而且没有soapaction了,需要注意~~~~
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> //标记为soap1.2协议
  <soap12:Body>
    <getSupportCity xmlns="http://WebXml.com.cn/">
      <byProvinceName>string</byProvinceName>
    </getSupportCity>
  </soap12:Body>
</soap12:Envelope>

//-------------------------------------Response------------------------------------
HTTP/1.1 200 OK
Content-Type: application/soap+xml; charset=utf-8
Content-Length: length

<?xml version="1.0" encoding="utf-8"?>
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <getSupportCityResponse xmlns="http://WebXml.com.cn/">  //结果集~~~
      <getSupportCityResult>
        <string>string</string>
        <string>string</string>
      </getSupportCityResult>
    </getSupportCityResponse>
  </soap12:Body>
</soap12:Envelope>

Postman调试(也可以用SoapUI)

soap1.1
img_cf2a19b5ceec864243374df0753f79a4.png
1.png
img_33f79d415aef804b796995658573a0f2.png
2.png
img_0ffa5780da0e898133aee964f296c19d.png
3.png
soap1.2
img_890cd0449f6ffaa2276fa4a14e761b56.png
5.png
img_9dee4267b1a93137d4a8d3fe91b17550.png
6.png
目录
相关文章
|
算法 安全 JavaScript
通过Postman实现API网关的请求签名与调试
Postman是一个非常强大的HTTP发包测试工具, 目前Postman已经提供了Windows/Mac/Linux系统的客户端的下载,使用很方便。不过API网关的调试,需要对HTTP请求进行签名才能调用,无法使用简单的curl等发包工具完成,但我们可以使用Postman工具提供的Pre-request Script脚本来实现API网关的签名功能,实现API的调试功能。
5969 0
|
2月前
|
Java
Postman调试grpc
Postman调试grpc
43 1
|
11月前
|
网络协议 Dubbo 应用服务中间件
实操指南:Postman 怎么调试 WebSocket
WebSocket 是一个支持双向通信的网络协议,它在实时性和效率方面具有很大的优势。Postman 是一个流行的 API 开发工具,它提供了许多功能来测试和调试 RESTful API 接口,最新的版本也支持 WebSocket 接口的调试。想要学习更多关于 Postman 的知识,可访问 Postman 中文文档。在本文中,我们将介绍如何使用 Postman 调试 WebSocket 接口。
|
4月前
|
前端开发 API
【strapi系列】strapi在postman中如何调试public和认证用户Authorization的接口
【strapi系列】strapi在postman中如何调试public和认证用户Authorization的接口
69 1
|
JavaScript Dubbo 小程序
IDEA 插件版的 Postman,接口调试太方便了!
IDEA 插件版的 Postman,接口调试太方便了!
IDEA 插件版的 Postman,接口调试太方便了!
|
JSON 测试技术 数据格式
Postman测试工具调试接口详细教程【向后端发送Json数据并接收返回的Json结果】
Postman测试工具调试接口详细教程【向后端发送Json数据并接收返回的Json结果】
493 0
Postman测试工具调试接口详细教程【向后端发送Json数据并接收返回的Json结果】
|
API 开发工具 Python
通过Postman实现专有云云解析API网关的请求签名与调试
本文主要使用Postman调试API网关的方法,文中使用Pre-request Script实现了阿里专有云云解析API网关的签名算法。
1052 0
通过Postman实现专有云云解析API网关的请求签名与调试
|
算法 API
通过Postman实现API网关的请求签名与调试
# 通过Postman实现API网关的请求签名与调试 ## 1. 前言 [Postman](https://www.getpostman.com/)是一个非常强大的HTTP发包测试工具, 目前Postman已经提供了Windows/Mac/Linux系统的客户端的下载,使用很方便。不过API网关的调试,需要对HTTP请求进行签名才能调用,无法使用简单的`curl`等发包工具完成,但我们
3013 0
|
Web App开发 JavaScript 前端开发
Postman - 功能强大的 API 接口请求调试和管理工具
  Postman 是一款功能强大的的 Chrome 应用,可以便捷的调试接口。前端开发人员在开发或者调试 Web 程序的时候是需要一些方法来跟踪网页请求的,用户可以使用一些网络的监视工具比如著名的 Fiddler 等抓包调试工具,今天介绍的这款工具在接口维护更加方便,支持定义和运行接口测试,可以说是 Chrome 应用最好用的接口调试工具之一。
1768 0