je récupère des données binaires sur http. Mon code ressemble à:
var writeStream = fs.createWriteStream(fileName);
request(url, function(err, res) {
res.socket.pipe(writeStream);
});
maintenant le fichier de sortie est créé mais la taille du fichier est 0. L'URL est correcte cependant, j'ai vérifié cela avec wget.
Merci d'avance Cordialement
Le rappel pour http.request
ne fournit qu'un seul argument, qui fait référence à la réponse de la demande. Essayer
http.request(url, function(res) {
res.pipe(writeStream);
});
Notez également que le ClientResponse
implémente ReadableStream
, vous devez donc utiliser .pipe
plutôt que .socket.pipe
.
Je suppose qu'ici request
provient de la bibliothèque de requêtes de mikeal plutôt que d'être une instance de http.request
. Dans ce cas, vous pouvez simplement faire request(url).pipe(writeStream);
N'oubliez pas qu'à des fins de débogage, vous pouvez toujours diriger vers process.stdout
.
var readStream = fs.createReadStream(fileName);
request(url, function(err, res) {
readStream.pipe(res);
readStream.on('end', function() {
//res.end({"status":"Completed"});
});
});