Nodejs https сертификат с базовой c аутентификацией - частичный ответ - PullRequest
0 голосов
/ 19 июня 2020

Я пытаюсь подключиться к сайту 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...