Node.js 试图做一个';邮政';与节点的请求
我试图在node.js中使用request或http/https(或其他任何东西,如果这两种方式都不可能的话)执行以下cUrl请求 到目前为止,我得到的是:Node.js 试图做一个';邮政';与节点的请求,node.js,http,curl,https,Node.js,Http,Curl,Https,我试图在node.js中使用request或http/https(或其他任何东西,如果这两种方式都不可能的话)执行以下cUrl请求 到目前为止,我得到的是: var options = { "hostname": "https://somedomain.com/rest/", "method": 'POST', "headers" : { "customeHeader" : "customeHeader" }
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),或者上面的内容完全错误了您需要使用req.write编写您的帖子正文:
req.write(JSON.stringify(someObj));
还将内容类型
标题设置为application/json
下面是一个完整的示例:
var request = require('https').request,
parseUrl = require('url').parse;
var options = parseUrl('https://somedomain.com/rest');
options.method = 'POST';
options.headers = {
'Content-Type': 'application/json'
};
var req = request(options, function (res) {
res.on('data', function (d) {
console.log(d.toString());
});
});
req.write(JSON.stringify({a: 1, b: 2}));
req.end();
这对我来说是一个潜在的问题:
“主机名”:https://somedomain.com/rest/“
。您给定的值不是主机名,而是URLsomedomain.com
是主机名。http.request
方法采用了一个path
选项,您应该将该选项与URL的其余部分一起提供。不管怎样,如果您能告诉我们您遇到了什么错误(如果有),或者您遇到了什么行为,以及它与您期望的有什么不同,这将是非常有帮助的。Jordan感谢上面的提示,我刚刚找到了这些提示,是的,协议/URI不应该在主机名中提供,我现在唯一缺少的是如何/在哪里包括帖子字段。我认为你会发现这篇帖子上的答案和评论很有用:
var request = require('https').request,
parseUrl = require('url').parse;
var options = parseUrl('https://somedomain.com/rest');
options.method = 'POST';
options.headers = {
'Content-Type': 'application/json'
};
var req = request(options, function (res) {
res.on('data', function (d) {
console.log(d.toString());
});
});
req.write(JSON.stringify({a: 1, b: 2}));
req.end();