2013-02-17 2 views
1

Это мой маленький кусочек кода:Ошибка при помощи http.request в node.js

var options = { 
    host: 'www.cuantocabron.com', 
    port: 80, 
    path: '/index.php', 
    method: 'GET' 
}; 

var http = require('http'); 

var req = http.request(options, function(res) { 
    console.log('STATUS: ' + res.statusCode); 
    console.log('HEADERS: ' + JSON.stringify(res.headers)); 
    res.setEncoding('utf8'); 
    res.on('data', function (chunk) { 
    console.log('BODY: ' + chunk); 
    }); 
}); 

// write data to request body 
req.write('data\n'); 
req.write('data\n'); 
req.end(); 

Я пытаюсь получить все HTML-код из этого URL; в то время, когда я запускаю этот код, консоль печатает весь HTML-код, но после этого выкидывает ошибку, поэтому мой сервер отключается.

Но, когда я запускаю его, консоль выдаст ошибку:

events.js:71 
     throw arguments[i]; //Unhandled 'error' event 

Error: Parse Error 
    at Socket.socketOnData (http.js:1447:20) 
    at TCP.onread (net.js:404:27) 

Любое решение? Thanks;

ответ

2

Если вы только пытаетесь получить HTML-код с этого URL-адреса, вам не нужны инструкции req.write. Это те утверждения, которые вызывают ошибку. Вы используете req.write при записи данных на сервер, E.G. Если вы делали POST.

Вы должны также добавьте в обработчик ошибок после того, как вы объявить REQ

req.on('error', function(e) { 
    console.log('problem with request: ' + e.message); 
}); 
+0

Мои мысли точно. Является ли это даже «законным» (я имею в виду закончить), чтобы написать в тело запроса GET? – slacktracer

 Смежные вопросы

  • Нет связанных вопросов^_^