Node.JS请求的rejectUnauthorized为false

ash*_*ana 5 request node.js

我正在尝试使用request用于Node.js 的模块来制定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);
    });
});
Run Code Online (Sandbox Code Playgroud)

我尝试使用以下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);
    }
});
Run Code Online (Sandbox Code Playgroud)

但是,这给了我一个错误 { [Error: socket hang up] code: 'ECONNRESET', sslError: undefined }

这将是request等效rejectUnauthorized: false

M. *_*put 6

这可能会帮助你。

let request = require( 'request' ).defaults({rejectUnauthorized:false});
Run Code Online (Sandbox Code Playgroud)


ash*_*ana 5

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);
    }
});
Run Code Online (Sandbox Code Playgroud)