मैं ज्ञानबेस को POST अनुरोध करने का प्रयास कर रहा हूं। मैं अनुरोध से 5-10% अनुरोध से सही प्रतिक्रिया प्राप्त कर सकता हूं। सभी दूसरी बार मैं सर्वर से वापस शीर्षक में त्रुटि मिलती है:POST अनुरोध निकाय शून्य या खाली
No argument passed{“Error”:{“Code”:“BadArgument”,“Message”:“Request body Is Null or Empty.”}}
मुझे लगता है इस Node.js के कारण होता है async किया जा रहा है और मेरे चर जब अनुरोध के माध्यम से चला जाता है अभी भी अनिर्धारित रहता है। हालांकि, यह कैसे हो सकता है जब req.write()
चर शामिल है? हो सकता है कि अनुरोध भेजने से पहले वैरिएबल को परिभाषित करने के लिए देरी हो सकती है?
var https = require('https');
var resData = "";
var options = {
host: "westus.api.cognitive.microsoft.com",
port: 443,
path: "/qnamaker/v2.0/knowledgebases/<kb-key>/generateAnswer",
method : 'POST',
headers: {
'Content-Type': 'application/json',
"Ocp-Apim-Subscription-Key":"<sub-key>",
},
};
bot.dialog('qnaReq', function (session, args) {
//call QnA Bot and ask that bot the question
var req = https.request(options, function(res) {
res.on('data', function (chunk) {
resData += chunk;
});
res.on('error', function(e) {
console.log('problem with request: ' + e.message);
});
res.on('end', function() {
if (resData.length != 75) { //75 is the length of the error I get almost every time. This line prevents the application from crashing since I am trying to access values that won't be there.
var accessibleData = JSON.parse(resData);
session.send(accessibleData["answers"][0]["answer"]);
} else {
session.send("No argument passed" + resData);
}
resData = "";
});
});
var postData = {question: session.message.text};
console.log(postData); //postData is defined
req.write(JSON.stringify(postData));
req.end();
}).triggerAction({
matches: 'IT Help'
});
क्या आप वाकई अपना सत्र शून्य नहीं है? क्या आप इसे जांचने के लिए अपने 'postData' को कंसोल कर सकते हैं। आपका कोड बहुत सरल लगता है, यह नहीं मिल सकता कि क्या गलत हो सकता है। – Sigma
हाँ, console.log (postData) पूरी तरह से काम करता है। मुझे बिल्कुल यकीन नहीं है कि मैं अपने परिणामों को ठीक से क्यों पूछ सकता हूं और फिर इसे फिर से प्रयास करें और यह अगले 15 बार काम नहीं करता है, मैं कोशिश करता हूं –
क्या यह संभव है कि एपीआई अनुरोध दर को सीमित करे? क्या आप इस व्यवहार को डाकिया या किसी अन्य ग्राहक के साथ पुन: उत्पन्न कर सकते हैं? – Sigma