簡體   English   中英

8192 NodeJS 請求中的數據大小有限

[英]8192 limited data size in NodeJS request

我正在嘗試從 api 獲取 json 但只收到了一半的響應。 那么如何獲得完整的響應呢?

var request = require('request');
var url_to_check = 'http://example.com/api/test';

request.get(url_to_check).on('data', function(data) {

// Only half of the data is printed (8192). Remaining bytes are lost.

    console.log(data.toString());

})

您的代碼是正確的,您犯的唯一錯誤是您正在流式傳輸請求數據,因此如果響應很大,您將無法獲得有關事件“數據”的全部數據。 您將必須收集塊並在事件“結束”時進行整合。 檢查此代碼段

var request = require('request');
var url = 'https://reqres.in/api/users';
var req = request.get(url)
var data = []
 req.on('data',function(chunk){
   data.push(chunk))
 })
 req.on('end',function(){
   console.log(Buffer.concat(data).toString())
 })

如果你不想 stream 和 pipe 數據而且響應大小也很小,那么你可以試試這個:

    request.get(url, function(err, response, responseBody) {
    if (!err) {
        // var jsonRes = JSON.parse(JSON.stringify(response))
        // responseBody = jsonRes.body
        console.log(responseBody)
    } else {
        // handle error here
    }
})

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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