220 votes

Où se trouve le corps dans un nodejs http.get réponse ?

Je lis les docs à http://nodejs.org/docs/v0.4.0/api/http.html#http.request, mais pour une raison quelconque, je n’arrive pas à réellement trouver l’attribut du corps/données sur l’objet de réponse retourné, fini.

C’est fini (http.get fait pour vous), elle doit avoir une sorte de contenu. Mais il n’y a aucun corps, aucune donnée, et je ne peux pas lire de lui. Où se cache le corps ?

181voto

yojimbo87 Points 27744

http.Request docs contient exemple comment recevoir le corps de la réponse par le biais de manipulation `` événement :

http.Get fait la même chose que http.request sauf il appelle `` automatiquement.

158voto

bizi Points 419

Je tiens aussi à ajouter que le retourné par a un `` événement, alors voici une autre façon que j’ai reçu la réponse de l’organisme :

61voto

mikemaccana Points 7470

http.get() renvoie une demande d' objet, et non un objet de réponse (contrairement à d'autres synchrone bibliothèques de vous peuvent être utilisés pour).

La demande, une requête, ne contient pas le corps de la réponse, si je cherchais au mauvais endroit.

De faire quelque chose une fois que la demande a reçu une réponse, de créer des rappels:

  • Un pour quand la réponse est d'abord reçu
  • Un autre, à l'intérieur de la demande, lorsque des données sont reçues (qui peut être un certain temps après les en-têtes)

Code du travail comme suit:

http = require('http')

options =
  host: 'www.sfsdffsd.com'
  path: '/'

request = http.get options, (response) ->
  console.log("Got response: " + response.statusCode)
  console.log(response.headers)
  console.dir(response)  
  response.on 'data', (chunk) -> 
    console.log('body: ' + chunk)

request.on 'error', (error) ->
  console.log("Got error: " + error.message)

12voto

user969714 Points 66

Si vous voulez utiliser .get, vous pouvez le faire comme ça

 http.get(url, function(res){
    res.setEncoding('utf8');
    res.on('data', function(chunk){
        console.log(chunk);
    });

});
 

8voto

Skomski Points 3486

Vous devez ajouter un écouteur à la requête car node.js fonctionne de manière asynchrone comme ceci:

 request.on('response', function (response) {
  response.on('data', function (chunk) {
    console.log('BODY: ' + chunk);
 });
});
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X