【发布时间】:2014-04-15 16:14:37
【问题描述】:
我正在尝试在 node.js 中使用请求或 http/https(或其他任何东西,如果这 2 不可能)来执行以下 cUrl 请求
curl -k -3 -X POST https://somedomain.com/rest/ \
-H "customeHeader: customeHeader" \ // customer header
-d '{ "email" : "foo@bar.com", "password" : "yourpassword" }' // data to post.
这是我目前得到的:
var options = {
"hostname": "https://somedomain.com/rest/",
"method": 'POST',
"headers" : {
"customeHeader" : "customeHeader"
},
"secureProtocol" : "SSLv3_method",
"rejectUnauthorized" : false
};
var req = https.request(options, function(res) {
res.on('data', function(d) {
console.log(d);
//process.stdout.write(d);
});
});
req.end();
req.on('error', function(e) {
console.error(e);
});
}
我认为我只是缺少 Post 字段(-d)或者以上完全错误
【问题讨论】:
-
这在我看来是一个潜在问题:
"hostname": "https://somedomain.com/rest/"。您提供的值不是主机名,而是 URL。somedomain.com是主机名。http.request方法采用path选项,您应该提供 URL 的其余部分。无论如何,如果您能告诉我们您遇到了什么错误(如果有的话),或者您遇到了什么行为以及它与您的预期有何不同,将会很有帮助。 -
Jordan 感谢上述提示,我刚刚弄清楚了,是的,协议/URI 不应该在主机名中提供,我现在唯一缺少的是如何/在哪里包含发布字段
-
我想你会发现这篇文章中的答案和 cmets 很有用:stackoverflow.com/questions/6158933/…