Отправьте http-запрос с пакетом https в node.js - PullRequest
0 голосов
/ 16 июня 2020

Я сейчас пытаюсь понять, как я могу отправить https post-запрос, используя специальный пакет c. Потому что я хочу настроить определенную c aws лямбда-функцию, которая время от времени выполняет HTTP-запросы.

Код, который дается из чертежа aws:

const https = require('https');

/**
 * Pass the data to send as `event.data`, and the request options as
 * `event.options`. For more information see the HTTPS module documentation
 * at https://nodejs.org/api/https.html.
 *
 * Will succeed with the response body.
 */
 

exports.handler = (event, context, callback) => {
    const req = https.request(event.options, (res) => {
        let body = '';
        console.log('Status:', res.statusCode);
        console.log('Headers:', JSON.stringify(res.headers));
        res.setEncoding('utf8');
        res.on('data', (chunk) => body += chunk);
        res.on('end', () => {
            console.log('Successfully processed HTTPS response');
            // If we know it's JSON, parse it
            if (res.headers['content-type'] === 'application/json') {
                body = JSON.parse(body);
            }
            callback(null, body);
        });
    });
    req.on('error', callback);
    req.write(JSON.stringify(event.data));
    req.end();
};

в то время как запрос, который я хочу отправить, выглядит так:

<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
    <Body>
        <startWithExternalId xmlns="http://examplehomepage.com/">
            <externalProjectId xmlns="">001</externalProjectId>
            <!-- Optional -->
            <accessToken xmlns="">
                <token>YjsasdSSdaI2ZDY5ZDFjMjMyNjQ4ZmVmMDYyODIxN2NjODIzMzBhYTljMDczYTQ0</token>
            </accessToken>
        </startWithExternalId>
    </Body>
</Envelope>

Моим первым предположением было просто вставить тело запроса внутри let body = '' в предоставленный aws код. Но это дает мне ошибки. Думаю, мне нужно как-то изменить синтаксис моего запроса, чтобы он подходил для https-запроса, предоставленного aws. В каком синтаксисе я могу сохранить данные в 'event.data'?

Любая помощь приветствуется.

...