[英]Json http.get nodejs gives wrong data
美好的一天,我正在嘗試使用http.get獲取json文件
http.get("http://steamcommunity.com/profiles/76561197993482001"+ "/inventory/json/730/2",function(res){ var chunk2=''; res.on('data',function(chunk){ chunk2+=chunk; }); res.on('end',function(){ console.log(chunk2); }); });
但是在我的控制台中,只有以下5個奇怪的字符: (以及其中一些帶有數字的正方形)
到底是怎么回事? 謝謝
編輯我嘗試添加res.setEncoding('utf8'); 但它不起作用
有問題的URL返回302(重定向)狀態代碼,因此您應檢查res.statusCode
並使用響應中提供的Location
標頭(指向實際位置)重新發出請求。 或者,您可以使用request
模塊,該模塊將為您處理重定向。
至於您得到的數據:服務器確實返回了302響應的內容主體,並且該內容由一個26字節的gzip壓縮文檔組成,該文檔似乎不包含任何內容:
$ curl --silent --no-location 'http://steamcommunity.com/profiles/76561197993482001/inventory/json/730/2' | gunzip | wc -c
0
由於Node將響應解釋為UTF-8(不是),因此您會得到那些奇怪的字符。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.