我有一個node.js應用程序正在向ReST Web服務發出一些https請求。 我想做一些事情,就它而言,看起來應該很簡單 - 檢索從Web服務返回的錯誤消息。如何檢索HTTP響應錯誤的詳細信息
我可以得到狀態碼 - 即200,404等,但不是錯誤的細節。
響應的身體看起來是這樣的:
{
"type": "http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.4.5",
"title" : "Not Found",
"status": "404",
"detail": "Resource not found: X33003"
}
我的代碼如下所示:
var options = {
"method": "POST",
"hostname": "myhost.com",
"port": null,
"path": "/mypath/",
"headers": {
"content-type": "application/json",
"authorization": basicAuthString,
"cache-control": "no-cache"
}
};
try {
var reqWorkSkill = http.request(options, function(res) {
var chunks = [];
res.on("data", function(chunk) {
chunks.push(chunk);
});
res.on("end", function() {
var body = Buffer.concat(chunks);
var response = JSON.parse(body);
console.log("Detail: " + body.detail); // COMES BACK UNDEFINED
});
res.on("error", function(error) {
console.log("Something went wrong with: " + resourceIdArray[i] + " failed: " + error);
});
if(res.statusCode != 200){
// Do some stuff
}
console.log("res status: " + res.statusCode);
console.log("res text: " + res.statusText); // COMES BACK UNDEFINED
});
reqWorkSkill.write(itemToPost);
reqWorkSkill.end();
}
catch (e) {
console.log(e);
}
這將是能夠提出究竟是什麼出了問題有用的 - 即消息:未找到資源:上面的JSON中的X33003。我怎麼能得到這個?
我們可以看到'options'對象嗎?另外,你是否期待二進制數據? – ishegg
Hi ishegg - 已更新爲包含Options對象。返回的數據不是二進制的,沒有任何狀態返回200,或者我認爲,包含我包含的JSON的主體。 –