[英]NodeJS http.request fails when header is too large
我的代碼如下
var http = require('http');
var host=...
var postData=({
//some fun stuff
})
var postOptions ={
host: host,
path: '/api/dostuff',
method: 'POST',
headers:{
AppID:"some stuff",
Authorization: "OAuth token",
"Content-Type":"application/json"
},
};
var req = http.request(postOptions, function(res){
var data = '';
res.on('data', function (chunk) {
data += chunk;
});
res.on('end', function () {
//sanitize data stuff here
console.log("DATA HERE: "+ data);
return data;
});
});
req.write(JSON.stringify(postData));
req.end();
這是C#服務器的基本HTTP發布。 重要的東西在標題中。 我發送了應用程序ID(大約50個字符)和OAuth令牌(可以是數千個字符)。 目前,服務器未設置為使用Authorization標頭執行任何操作。 它甚至不檢查它是否在那里。
我的問題是,當我用一些隨機字符填充Authorization標頭(或任何標頭)作為測試時,發布成功。 當我使用完整的有效授權令牌再次嘗試時(重申,該令牌很長),它失敗了。 無論我填充標題的哪一部分,一旦填充太滿,它都會返回錯誤。 我收到的錯誤是“處理HTTP請求導致異常。有關詳細信息,請參見此異常的'Response'屬性返回的HTTP響應”。 我可以肯定這是服務器問題,但是當我嘗試在Postman中運行完全相同的正文和標頭時,得到了有效的響應。
有誰知道是什么原因造成的?
有一個已編譯的常量, 用於Node HTTP標頭的定義為80k 。 你在碰那個嗎? 我建議您查看OAuth令牌頭的大小。 但是它不應該超過80k,對於FWOW,對於OAuth來說甚至是一個千字節也是如此...但是,不管...嘗試轉儲標頭的大小(以字節為單位)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.