Новичок в Node.js, если кто-нибудь может подсказать мне, где я совершаю ошибку или пропустил, был бы очень признателен.
Я делаю функцию fireBase, для которой он вызывает внешний API.
При запуске функции firebase я получаю ошибку ниже ..
Я понимаю, что это SOAP-сервис, но когда я выполняю тот же запрос через SOAPUI, Postman и Swift 4.0, что и REST, я получаю рабочий ответ. только узел. JS дает вопросы
<html>
<head>
<meta content="HTML Tidy for Java (vers. 26 Sep 2004), see www.w3.org" name="generator"/>
<title>Bad Request</title>
</head>
<body>
<h1>Bad Request</h1>
Your browser sent a request that this server could not understand.
<p>Reference #7.5c6775c7.1548021657.449091a5</p>
</body>
</html>
exports.fetchClients = functions.https.onRequest((request, response) => {
var https = require('https');
var postData = `<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="http://clients.mindbodyonline.com/api/0_5_1"><soapenv:Header/><soapenv:Body><GetClients><Request>>........</Request></GetClients></soapenv:Body></soapenv:Envelope>`;
const options = {
protocol:"https:",
hostname: 'api.mindbodyonline.com',
path: '/0_5_1/ClientService.asmx',
method: "POST",
headers: {
"Content_Type": "text/xml",
"SOAPAction": "....",
"API-key": "....",
"SiteId": "...",
"Connection":"Keep-Alive",
"Host":"api.mindbodyonline.com",
"Accept-Encoding":"Accept-Encoding: gzip,deflate",
}
};
var req = https.request(options, function(res) {
var responseData = "";
console.log('STATUS: ' + res.statusCode);
console.log('HEADERS: ' + JSON.stringify(res.headers));
res.setEncoding('utf8');
res.on('data', function (chunk) {
responseData += chunk;
});
res.on('end', function (chunk) {
console.log("responseData: " + responseData);
response.send(responseData);
});
});
req.on('error', function(e) {
console.log('problem with request: ' + e.message);
response.send(e);
});
req.write(postData);
req.end();
});
ОБНОВЛЕНИЕ !!!
В названии заголовка типа контента была опечатка. Вот почему запрос не был обработан. Сейчас работает :)
До: Content_Type
После: Тип контента