我试图在Sails.js中发出HTTPS请求,并收到错误消息:
Error: Client network socket disconnected before secure TLS connection was established
。
我认为我缺少要发送的SSL文件,但是我不确定是否可以,我不确定如何从页面获取它们。
我正在尝试使用request
库在Sails.js中发出HTTP请求。
我在Firefox中下载了网站的SSL证书(仅获得了一个.crt
文件)。
我将文件放在Sails的assets
目录中。
我在config/ssl.js
创建了一个sails config SSL文件,并在其中从assets
目录中导出了SSL证书文件。
我创建了一个控制器,导入了SSL配置对象,并将其放入请求的agentOptions
属性中。
注意:我没有帆http
文件。我需要吗?当我使用sails new <app name>
创建应用程序时未创建该文件。
SSL证书文件路径:assets/wwwoldhealthgovil.crt
位于config/ssl.js
的SSL配置文件(已正确读取,能够在控制器中console.log
对其进行加密):
const path = require('path');
const fs = require('fs');
module.exports.ssl = {
ca: fs.readFileSync(path.resolve(__dirname, '../assets/wwwoldhealthgovil.crt')).toString()
}
控制器InactiveDoctorsController
:
const request = require('request');
module.exports = {
getInactiveDoctors: function(req, res) {
var options = {
method: 'GET',
url: 'https://www.old.health.gov.il/oskimbbriut/rufim/DoctorSearchNew.asp',
qs: {
p: '1'
},
headers: {
"Remote-Address": "147.237.72.200:443",
"Referrer-Policy": "no-referrer-when-downgrade",
"Host": "www.old.health.gov.il",
"Connection": "keep-alive",
"Cache-Control": "max-age=0",
"Upgrade-Insecure-Requests": "1",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36",
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
"Accept-Encoding": "gzip, deflate, br",
"Accept-Language": "en-US,en;q=0.9,fi;q=0.8,sv;q=0.7,he;q=0.6,el;q=0.5",
"Cookie": "wcag-cookie-temp-www.old.health.gov.il=true; ASPSESSIONIDACBTQQTR=NMGEOCKABNLNMJBPKLMKKADD; ASPSESSIONIDACDRQQSR=MIGKLOGBIIGHAGGICMICLJKP; ASPSESSIONIDCADDTSAB=GBNOMJIBBKGDNMKEJBCGCFPH",
},
agentOptions: {
ca: sails.config.ssl.ca,
}
};
request(options, function (error, response, body) {
if (error) throw new Error(error);
console.log(body);
});
},
};
缺少什么/我在做什么错?