Postman 测试webService接口(soap协议)

1.webService?

1
WebService是一种跨编程语言、跨操作系统平台的远程调用技术

2.soap?

1
SOAP是基于XML 的简易协议,可使应用程序在HTTP之上进行信息交换

3.soapUI 请求webService接口

alt soapUI测试

4.postman 请求webService接口

1
2
3
1.首先请求类型为post 填写上webService地址 ,url地址后不追加?wsdl
2.设置请求头 header Content-type text/xml
3.填写请求体内容 raw

alt 设置请求头
alt 设置请求主体

5.nodeJs 请求webService接口

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
const soap = require('soap');// 安装soap包
const requestPromise = require('request-promise'); // 采用request方式请求soap接口

// 通过request包请求,缺点:请求参数和原始结果都是xml格式
async function requestSoap() {
const options = {
url: 'http://**host**:**port**/psp/services/CrsService?wsdl',
method: 'POST',
body: '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:crs="http://xfire.super8.com/CrsService">\n' +
' <soapenv:Header>\n' +
' \t <AuthenticationToken>\n' +
' \t \t<Username>pegasus2</Username>\n' +
' \t \t<Password>pegasus2pw</Password>\n' +
' \t </AuthenticationToken>\n' +
' </soapenv:Header>\n' +
' <soapenv:Body>\n' +
' <crs:getAllRateCode/>\n' +
' </soapenv:Body>\n' +
'</soapenv:Envelope>', // 请求主体
headers: {
'Content-Type': 'text/xml;charset=utf-8',
},
timeout: 15000,
};
let result = await requestPromise(options);
console.log(result);
}

requestSoap();


// 通过soap包请求,优点:格式为json,则包会自动转换为xml,但有特别多细节需要注意
async function soapRequest() {
var url = 'http://**host**:**port**/psp/services/CrsService?wsdl'
var args = {};
var header = '<AuthenticationToken><Username>*****</Username><Password>*****</Password></AuthenticationToken>';
// 创建连接 options可以自定义
soap.createClient(url, function (err, client) {
client.addSoapHeader(header);//设置soap报文头
client.getAllRateCode(args, function (err, result) { // getAllRateCode 为具体的方法名
if (err) {
console.log('error:', err);
} else {
console.log('result:', result);
}
});
});
}

soapRequest();
-------------本文结束感谢您的阅读-------------
分享不易,请我喝杯咖啡吧~~~