我正在尝试使用Node.js的request
模块来制定HTTPS GET请求。使用https
模块的相应代码如下:
var https = require('https');
var options = {
hostname: url,
path: path,
rejectUnauthorized: false,
secureProtocol: 'TLSv1_method',
port: 8443,
method: 'POST'
};
https.get(options, function(response) {
var body = '';
response.on('data', function(chunk) {
body += chunk.toString();
});
response.on('end', function() {
var content = JSON.parse(body);
console.log(content);
});
});
我尝试使用request
模块重写此代码,如下所示:
var request = require('request');
var options = {
url: url,
strictSSL: false
}
request.get(options, function(error, response, body) {
if (error) {
console.log(error);
} else {
console.log(body);
}
});
但是,这给了我一个错误{ [Error: socket hang up] code: 'ECONNRESET', sslError: undefined }
request
等同于rejectUnauthorized: false
的内容是什么?
答案 0 :(得分:2)
Node.js中的request
模块具有选项secureProtocol
,即使没有记录。
可以使用如下:
var request = require('request');
var options = {
url: url,
strictSSL: false,
secureProtocol: 'TLSv1_method'
}
request.get(options, function(error, response, body) {
if (error) {
console.log(error);
} else {
console.log(body);
}
});
答案 1 :(得分:0)
添加以下两行:
...
rejectUnauthorized: false,
requestCert: false,//add when working with https sites
agent: false,//add when working with https sites
...
对我有用。
答案 2 :(得分:0)
您可以在请求调用中添加代理。这允许您像以前一样添加rejectUnauthorized
:
const request = require('request');
const https = require('https');
var agent = new https.Agent({
host: URL_HOST,
port: '443',
path: '/',
rejectUnauthorized: false
});
var options = {
url: url,
agent: agent
};
request.get(options, function(error, response, body) {
if (error) {
console.log(error);
} else {
console.log(body);
}
});
答案 3 :(得分:0)
这可能会为您提供帮助。
let request = require( 'request' ).defaults({rejectUnauthorized:false});