मैं एक साधारण http अनुरोध करने की कोशिश कर रहा हूं जो रीडायरेक्ट का पालन करता है:
http.get('http://www.example.com/', function(res){
var data = [];
res.on('data', function(chunk){
data.push(chunk)
}).on('end', function(){
var buffer = Buffer.concat(data);
// console.log(buffer.toString('base64')) //This outputs random string
console.log(buffer)
})
})
मुझे जो प्रतिक्रिया मिल रही है वह है:
<Buffer 3c 21 44 4f 43 54 59 50 45 20 68 74 6d 6c 3e 0a 3c 68 74 6d 6c 3e 0a 3c 68 65 61 64 3e 0a 20 20 20 20 3c 6d 65 74 61 20 68 74 74 70 2d 65 71 75 69 76 ... >
मैंने JSON को जोड़कर इसे पार्स करने का भी प्रयास किया है:
var parsedData = JSON.parse(data);
console.log(parsedData)
यह त्रुटि <
प्रतीक के कारण json-parse मॉड्यूल द्वारा संसाधित नहीं की जा रही है।
res.statusCode
200
आउटपुट कर रहा है।
मुझे यकीन नहीं है कि यह एक एन्कोडिंग त्रुटि है या यदि अनुरोध रीडायरेक्ट का पालन करने में विफल रहा है? यह हेक्साडेसिमल एन्कोडिंग की तरह नहीं दिखता है।
क्या किसी और ने इसे पहले देखा है?
1 उत्तर
यहां क्या हो रहा है कि आप प्रतिक्रिया डेटा को बाइनरी डेटा (बफर) के रूप में पार्स कर रहे हैं और बाइनरी डेटा को सरणी में दबा रहे हैं। कंसोल में आप जो बाइनरी ऑब्जेक्ट देख रहे हैं वह वास्तव में अपेक्षित व्यवहार है :)
यदि आप JSON प्रतिक्रिया चाहते हैं, तो आपको डेटा बफर को एक स्ट्रिंग में जोड़ना होगा और फिर इसे पार्स करना होगा:
http.get('http://echo.jsontest.com/key/value/one/two', function(res){
var data = '';
res.on('data', function(chunk){
data += chunk;
}).on('end', function(){
var json = JSON.parse(data);
console.log(json);
});
});
अब जबकि हमें वह रास्ता मिल गया है, तो अनुरोध पर एक नज़र डालें — यह बनाता है एपीआई मूल HTTP मॉड्यूल की तुलना में आसान तरीका कहता है;)
संबंधित सवाल
नए सवाल
node.js
Node.js एक घटना-आधारित, गैर-अवरोधक, अतुल्यकालिक I / O रनटाइम है जो Google के V8 जावास्क्रिप्ट इंजन और libuv लाइब्रेरी का उपयोग करता है। इसका उपयोग उन अनुप्रयोगों को विकसित करने के लिए किया जाता है जो क्लाइंट पर और साथ ही सर्वर साइड पर जावास्क्रिप्ट को चलाने की क्षमता का भारी उपयोग करते हैं और इसलिए कोड के पुन: प्रयोज्य और संदर्भ स्विचिंग की कमी से लाभान्वित होते हैं।