Postman 无法访问邮递员预请求脚本中的XML响应

Postman 无法访问邮递员预请求脚本中的XML响应,postman,Postman,我在从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: '

我在从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);
});
pm.sendRequest({
url:“https://login.salesforce.com/services/Soap/u/40.0",
方法:“POST”,
标题:{
“soapaction”:“必需”,
“内容类型”:“text/xml”,
},
正文:{
模式:“原始”,
原始的:\
\
\
\
使用者\
密码\
\
\
"
}
},函数(err,responseBody){
控制台日志(pm.request.body);
var xmlTree=xml2Json(responseBody);
log(xmlTree);
log(“sessionid:+xmlTree['soapenv:Envelope']['soapenv:Body'].loginResponse.result.sessionid);
//set(“sys\u id”,response.json().result.sys\u id);
postman.setEnvironmentVariable(“sessionid”,xmlTree['soapenv:Envelope']['soapenv:Body'].loginResponse.result.sessionid);
});
当我在Postman控制台中查看响应时,我看到了正确的响应,但是当我尝试通过“pm.request.body”或简单地通过“responseBody”访问它时,我得到了一个空/空值

下面是我在输出到日志时看到并注意到的响应,它是空的:

有什么想法吗


此外,我能够使用一个响应JSON负载的url做完全相同的事情,并使用相同的方法提取响应并处理值。有人知道XML响应是否有不同之处吗?或者是否应该以不同的方式处理

这是一个非常简单的解决方案,在深入研究之后,我发现响应返回了一个“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);
});