如何在Postman中设置SOAPMessageContext变量

2fjabf4q  于 2022-12-13  发布在  Postman
关注(0)|答案(1)|浏览(171)

我正在尝试使用Postman来测试一个旧的过时SOAP服务。该服务期望将一些标识放置在处理程序链中以从请求中获取。在请求中,它以以下方式获取值(带有一些排除项):

import javax.annotation.Resource;

@Resource
private WebServiceContext webServiceContext;

public MyResponse methodEvent(...) {
   ...
   String var1 = (String) context.getMessageContext().get("VAR1");
   ...
}

我的问题是,当我尝试使用Postman时,我如何在请求中设置这个值。它不是正常标题或其他标准条目的一部分。

5uzkadbs

5uzkadbs1#

可以在SOAP API调用之前使用输出的响应来赋值result变量也可以使用其他调用的输出
来自三个不同的输入

1预请求脚本

2全局变量

3从其他请求输出-我认为您正在寻找此解决方案。

演示-我将在Calculator SOAP中显示ADD operation
SOAP服务URL

http://www.dneonline.com/calculator.asmx

使用变量input_ainput_b进行加法运算

#1预请求脚本

Pre-request Script处定义的值

postman.setEnvironmentVariable("input_a", 3);
postman.setEnvironmentVariable("input_b", 4);

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  <soap:Body>
    <Add xmlns="http://tempuri.org/">
      <intA>{{input_a}}</intA>
      <intB>{{input_b}}</intB>
    </Add>
  </soap:Body>
</soap:Envelope>

结果

#2全局变量

结果

#3从其他请求输出- XML解析和分配变量

您可以将此输出变量用于其他SOAP调用的输入

var xmlTree = xml2Json(responseBody);
var text = xmlTree["soap:Envelope"]["soap:Body"]["AddResponse"]["AddResult"];
console.log(text)
postman.setEnvironmentVariable("output_result", Number(text));
console.log(postman.getEnvironmentVariable("output_result"));

x1c4d 1x指令集
打印解析变量

相关问题