Node.js 从带有主体参数的QnA maker API获取响应时出错

Node.js 从带有主体参数的QnA maker API获取响应时出错,node.js,express,microsoft-cognitive,Node.js,Express,Microsoft Cognitive,我编写了以下调用microsoft QnA maker generate answer API的代码 var http=require('https'); var-demo=[]; log(“进行后期操作…”); //使用属性和值定义演示对象。此对象将用于POST请求。 var demo=JSON.stringify({“问题”:“hi”}); var extServerOptionsPost={ 主持人:'westus.api.cognitive.microsoft.com', 路径:'/q

我编写了以下调用microsoft QnA maker generate answer API的代码

var http=require('https');
var-demo=[];
log(“进行后期操作…”);
//使用属性和值定义演示对象。此对象将用于POST请求。
var demo=JSON.stringify({“问题”:“hi”});
var extServerOptionsPost={
主持人:'westus.api.cognitive.microsoft.com',
路径:'/qnamaker/v2.0/knowledgebase//generateAnswer',
港口:443,
方法:'POST',
标题:{
“Ocp Apim订阅密钥”:“我的密钥”,
“内容类型”:“应用程序/json”
}
};
var reqPost=http.request(extServerOptionsPost,函数(res){
console.log(“响应状态码:”,res.statusCode);
res.on('数据'),函数(数据){
console.log('Posting Result:\n');
进程.标准输出.写入(数据);
console.log(“\n\n操作完成后”);
});
});
要求后写(演示);
reqPost.end();
请求发布(错误),功能(e){
控制台错误(e);

});
https包是灵活的,但不是特别方便用户。您可以试试请求吗

无论如何,要使您的帖子发挥作用,您需要添加
内容长度
标题。有关类似问题,请参见

headers:{
    'Ocp-Apim-Subscription-Key':'my key',
    'Content-Type':'application/json',
    'Content-Length':Buffer.byteLength(demo)
}