问题描述
function httpGet(options) {
return new Promise(((resolve,reject) => {
const request = https.request(options,(response) => {
response.setEncoding('utf8');
let returnData = '';
response.on('data',(chunk) => {
returnData += chunk;
});
response.on('end',() => {
resolve(JSON.parse(returnData));
});
response.on('error',(error) => {
reject(error);
});
});
request.end();
}));
}
使用以下选项可以正常工作:
let path = `/1/indexes/combined-faq-directions?query=${location}&typoTolerance=false&getRankingInfo=true&optionalWords=${location}`;
var options = {
host: 'YQRKWVXBWV-1.algolianet.com',port: 443,path: path,method: 'GET',headers: {
"X-Algolia-API-Key": "APIKEYXXXX","X-Algolia-Application-ID": "IDXXX"
}
};
但是我现在正尝试使用相同格式对不同的URL进行POST。通过邮递员,我可以看到它工作正常,但我似乎无法按照我的诺言将其转换为正确的格式。
var https = require('follow-redirects').https;
var fs = require('fs');
var options = {
'method': 'POST','hostname': 'api.airtable.com','path': '/v0/appasoP3zaNL9k8Pj/Analytics','headers': {
'Authorization': 'Bearer keyxxxx','Content-Type': 'application/json','Cookie': 'brw=brw9wuY1b9RmtTl1q'
},'maxRedirects': 20
};
var req = https.request(options,function (res) {
var chunks = [];
res.on("data",function (chunk) {
chunks.push(chunk);
});
res.on("end",function (chunk) {
var body = Buffer.concat(chunks);
console.log(body.toString());
});
res.on("error",function (error) {
console.error(error);
});
});
var postData = JSON.stringify({"records":[{"fields":{"RoomNo":"Room 6"}}]});
req.write(postData);
req.end();
我已经尝试过对此进行调整,但出现错误ERR_STREAM_WHITE_AFTER_END
let path = `v0/appasoP3zaNL9k8Pj/Analytics`;
var options = {
host: "api.airtable.com",method: "POST",headers: {
Authorization: "Bearer keyxxx","Content-Type": "application/json",},};
var postData = JSON.stringify({ records: [{ fields: { RoomNo: "Room 6" } }] });
async function asyncCall() {
const response = await httpGet(options,postData);
console.log(response);
}
asyncCall();
function httpGet(options,postData) {
return new Promise((resolve,reject) => {
const request = https.request(options,(response) => {
response.setEncoding("utf8");
let returnData = "";
response.on("data",(chunk) => {
returnData += chunk;
});
response.on("end",() => {
resolve(JSON.parse(returnData));
});
response.on("error",(error) => {
reject(error);
});
if (postData) {
request.write(postData);
}
});
request.end();
});
}
我认为我非常接近,但无法弄清楚语法。任何帮助,不胜感激!
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)