Я пытаюсь подключиться к сайту https, используя хост, порт, baseurl, uri, auth: имя пользователя, пароль и сертификат CA, используя модуль https nodejs. Я получаю ответ 400, когда использую полный путь в URL-адресе. однако, указав только порт в URL-адресе, верните ответ 200 с домашней страницей.
const https = require('https');
const fs = require("fs");
const username = "user_name_bb";
const password = "****************";
const hostURL = "https://hosturl:32226";
const host = "hosturl";
const port = "32226";
const caString = fs.readFileSync('rabbit_dev_cert.cer');
const getQueueURL = '/api/queues';
const outfile = fs.createWriteStream("test2.js")
var get2 = () => {
console.log(hostURL+getQueueURL);
var result = https.get({
hostname: `${host}`,
// host: host,
// port: port,
method: 'GET',
username: username,
password: password,
agent: false,
// href: `${hostURL}${getQueueURL}`,
// path: 'api/overview',
// path: getQueueURL,
// protocol: "https:",
pathname: getQueueURL,
// pathname: getQueueURL,
// path: hostURL+getQueueURL,
// baseUrl: hostURL,
// uri: getQueueURL,
// href: hostURL+getQueueURL,
// socketPath: getQueueURL,
// username : "test",
// rejectUnauthorized: false,
auth: {
username: username,
password: password
},
headers: {
'Authorization': `Basic ${Buffer.from(`${username}:${password}`)}`,
'Content-type': 'application/json'
},
// simple: false,
// ca: fs.readFileSync('rabbit_dev.pem'),
cert : caString,
defaultPort: port
// ca: caString
}, res => {
// res.pipe(outfile);
res.on('close',()=>{
console.log(`##i close`)
outfile.close();
})
res.on('end', ()=>{
console.log(`##i end`)
})
res.on('error',(error)=>{
console.log(`##i error ${error.message}`)
})
res.on('pause', ()=>{
console.log(`##i pause`)
} );
res.on('readable',()=>{
const contentLength = res.headers["content-length"];
res.read(contentLength);
console.log(`##i readble ${contentLength}`);
});
res.on('resume',()=>{
console.log(`##i resume`);
})
res.on('data',(data)=>{
console.log(`## data ${data}`);
})
});
result.on('abort',()=>{
console.log(`## abort`);
});
result.on('close',()=>{
console.log(`## close`);
outfile.close();
});
result.on('connect',(res)=>{
console.log(`${res.statusCode}`);
console.log(`${res.rawHeaders}`);
console.log(`## connect`);
});
result.on('continue',()=>{
console.log(`## continue`);
});
result.on('drain',()=>{
console.log(`## drain`);
});
result.on('error',(error)=>{
console.log(`## error ${error.message}`);
});
result.on('finish',()=>{
console.log(`## finish`);
});
result.on('information',(info)=>{
console.log(`## info ${info.headers["content-length"]}`);
});
result.on('pipe',(src)=>{
console.log(`## pipe }`);
});
result.on('response',(res)=>{
// res.pipe(outfile);
// res.on('data',data=>{
// console.log(`## response ${data}`);
// })
console.log(`## response ${res.statusCode}`);
});
// result.on('socket',(soc)=>{
// console.log(`## socker`);
// });
result.on('timeout',()=>{
console.log(`## timeout`);
});
result.on('unpipe',(src)=>{
console.log(`## unpipe`);
});
result.on('upgrade',(res,soc,head)=>{
console.log(`## upgrade`);
});
/* .then(res=>{
fs.writeFileSync('test2out.js', res);
}).catch(err=>{
console.error(err.message);
}) */
}
get2();
Я пробовал почти все параметры или методы, которые предоставляются как часть https, однако я не мог определить правильный способ получить данные.
Пожалуйста, предоставьте подробную информацию, как указать путь в приведенном выше коде, чтобы я мог получить ответ от спецификаций c api