【发布时间】: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