#javascript #node.js #automation #protractor
Вопрос:
Я вызываю API GET в своем пакете автоматизации, но не получаю ответа. Тот же API работает с почтальоном. У меня полно консоли.журнал, который не печатается. Ошибок тоже нет. Ниже приведен фрагмент кода.
var deferred = protractor.promise.defer(); var options = { method: "GET", hostname: hostname, port: 8080, path: '/v1/fis/' fiId '/businessCustomers/' userAuthId '/approvals', headers: { 'authorization': 'testclient', 'content-type': 'application/json', 'accept': 'application/json', } }; var req = http.request(options, function (response) { browser.sleep(1000); console.log('headers are:', options); console.log('hostname is: ', hostname); browser.sleep(1000); console.log('STATUS for approval API : ' res.statusCode); var chunks = []; response.on("data", function (chunk) { console.log('in chunk block::'); chunks.push(chunk); }); response.on("end", function () { var body = Buffer.concat(chunks); var finaljson = JSON.parse(body.toString()); console.log('finaljson is:****', finaljson); successCallBack(finaljson.SuccessResponse); }); }); req.end(); return deferred.promise; };``` Any insights will be helpful. TIA!
Ответ №1:
Попробуйте вместо этого что-нибудь подобное. Должно работать лучше. Я пропустил вашу консоль.регистрируйте сообщения для простоты, но вы можете легко добавлять их там, где вам нужно.
function myFunction() { return new Promise(resolve, reject) { const options = { method: "GET", hostname: hostname, port: 8080, path: '/v1/fis/' fiId '/businessCustomers/' userAuthId '/approvals', headers: { 'authorization': 'testclient', 'content-type': 'application/json', 'accept': 'application/json', } }; http.get(options, (res) =gt; { let rawData = ''; res.on('data', (chunk) =gt; { rawData = chunk; }); res.on('end', () =gt; { try { const finaljson = JSON.parse(rawData); resolve(finaljson.SuccessResponse); } catch (e) { reject(e.message); } }); }).on('error', (e) =gt; { reject(e); }); } }
И тогда вы бы просто назвали это использованием myFunction().then((successResponse) =gt; { // do stuff })