【问题标题】:Unable to access XML response in Postman pre-request script无法访问 Postman 预请求脚本中的 XML 响应
【发布时间】:2019-03-06 20:58:45
【问题描述】:

我在从 Postman 预请求脚本中提取 xml 响应时遇到问题。我的预请求如下所示:

pm.sendRequest({
   url: "https://login.salesforce.com/services/Soap/u/40.0",
   method: 'POST',
   header: {
       'soapaction': "Required", 
       'Content-Type': 'text/xml',
   },
   body: {
       mode: 'raw',
       raw: "<se:Envelope xmlns:se=\"http://schemas.xmlsoap.org/soap/envelope/\"> \
                <se:Header/> \
                <se:Body> \
                    <login xmlns=\"urn:partner.soap.sforce.com\"> \
                        <username>user</username> \
                        <password>password</password> \
                    </login> \
                </se:Body> \
            </se:Envelope>"
   }
}, function (err, responseBody) {
    console.log(pm.request.body);
    var xmlTree = xml2Json(responseBody);
    console.log(xmlTree);
    console.log("sessionid: " + xmlTree['soapenv:Envelope']['soapenv:Body'].loginResponse.result.sessionId);
    //pm.environment.set("sys_id", response.json().result.sys_id);
    postman.setEnvironmentVariable("sessionid", xmlTree['soapenv:Envelope']['soapenv:Body'].loginResponse.result.sessionId);
});

当我查看 Postman 控制台中的响应时,我看到了正确的响应,但是当我尝试通过“pm.request.body”或简单的“responseBody”访问它时,我得到一个空/null 值。

以下是我看到的响应,并且当我输出以记录它为空时还要注意:

有什么想法吗?

此外,我可以使用响应 JSON 有效负载的 url 执行完全相同的操作,并使用相同的方法提取响应并使用值。有谁知道 XML 响应是否有不同之处?或者是否应该以不同的方式处理它们?

【问题讨论】:

    标签: postman


    【解决方案1】:

    结果证明这是一个超级简单的解决方案,经过深入研究后,我发现响应返回了一个“Stream”对象,需要使用 text() 函数对其进行反序列化。

    pm.sendRequest(loginRequest, function (err, response) {
        var xmlTree = xml2Json(response.text());
        var sessionid = xmlTree['soapenv:Envelope']['soapenv:Body'].loginResponse.result.sessionId;
        console.log("sessionid: " + sessionid);
        pm.environment.set("sessionid", sessionid);
    });
    

    【讨论】:

      猜你喜欢
      • 2021-07-04
      • 1970-01-01
      • 2022-01-16
      • 2018-02-28
      • 2022-06-29
      • 1970-01-01
      • 2017-11-23
      • 2018-12-10
      • 2021-10-24
      相关资源
      最近更新 更多