簡體   English   中英

標頭太大時,NodeJS http.request失敗

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM