Я сейчас пытаюсь понять, как я могу отправить 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'?
Любая помощь приветствуется.