Я пытаюсь сделать запрос https для API моей работы, используя node.js через следующий скрипт
const https = require('https');
const options = {
hostname,
path: fullPath,
port: 80,
method: 'POST',
headers: {
'Content-Type': 'application/json',
'Content-Length': data.length
}
};
const req = https.request(options, (res) => {
console.log('statusCode:', res.statusCode);
res.on('data', chunk => console.log('chunk:', chunk));
});
req.on('error', error => {
console.log('Failed!');
console.log(error);
});
req.write(data);
req.end();
И в ответ я получаю
Failed!
Error: write EPROTO 6772:error:1408F10B:SSL routines:ssl3_get_record:wrong version number:c:\ws\deps\openssl\openssl\ssl\record\ssl3_record.c:332:
at WriteWrap.onWriteComplete [as oncomplete] (internal/stream_base_commons.js:87:16) {
errno: 'EPROTO',
code: 'EPROTO',
syscall: 'write'
}
Я сделал этот запрос в браузере, используя jQuery, и он работал
$.post({
url, data,
success: res => console.log(res),
});
Я попытался использовать заголовок X-SSL-PROTOCOL безуспешно. URL и данные скрыты, потому что они конфиденциальны, но они одинаковы в примере jQuery и в node.js.