使用本机nodejs将标头发布到第三方端点时,我遇到了一个奇怪的问题。由于我无法控制这个终点,因此很难调试。
我传递了一个名为token的自定义标头。该值可以包含正斜杠。
如果它确实包含斜杠,我可以看到来自远程端点的响应有一个反斜杠来逃避它。如果我传入一个没有斜线的令牌,它可以正常工作。
失败示例:
的NodeJS token:" / test / token / with / slashes"
API响应
{result:"fail", token: "\/test\/token\/with\/slashes"}
传递示例:
的NodeJS 令牌:" 1234"
API响应 {结果:"确定",令牌:" 1234"}
问题是令牌总是有斜杠。我已经尝试使用邮递员使用包含斜杠的令牌复制调用,但它工作正常。因此,我假设节点js在发出请求之前添加了这些?
非常感谢任何有关如何解决这个问题的见解。
var post_data = querystring.stringify({
"value1" : "some value",
"value": "some value 2"
});
var post_options = {
"method": "POST",
"hostname": "mydomain.com",
"port": null,
"path": "/REST/api/some-end-point",
"headers": {
"content-type": "multipart/form-data;",
"token": "/YdIbwH6WAH/Djdw4JFH9/",
}
};
var post_req = https.request(post_options, function(res) {
res.setEncoding("utf8");
res.on("data", function (chunk) {
console.log("Response: " + chunk);
var parsed = JSON.parse(chunk);
console.log(parsed)
});
});
// post the data
post_req.write(post_data);
post_req.end();