Comment faire pour résoudre NODE.Js HTTP POST “ECONNRESET” Erreur
J'ai cette fonction et le dessous des données, qui est passé dans cette fonction retourne un ECONNRESET, prise de raccrocher erreur. Toutefois, lorsque le discountCode tableau est réduit à l'instar seulement 10 objets, il peut POSTER sans problème.
Quelle pourrait-être la cause de ce problème? J'ai essayé de faire plusieurs req.write() en segmentant les données dans la mémoire Tampon, mais cela ne fonctionne pas bien. Tout NodeJs ninja pourrait donner quelques idées à ce problème?
createObj: function(data, address, port, callback) {
//console.log('Create Reward: '+JSON.stringify(data));
var post_data = JSON.stringify(data);
var pathName = '/me/api/v1/yyy/'+data.idBusinessClient+'/newObj';
//
var options = {
hostname: address,
port: port,
path: pathName,
method: 'POST',
headers: {
'Content-Type': 'application/json; charset=utf-8',
'Accept': 'application/json',
'Accept-Encoding': 'gzip,deflate,sdch',
'Accept-Language': 'en-US,en;q=0.8'
}
};
//http call to REST API server
var req = restHttp.request(options, function(res) {
console.log('HTTP API server PUT Reward response received.');
var resData = '';
res.on('data', function(replyData) {
//Check reply data for error.
console.log(replyData.toString('utf8'));
if(replyData !== 'undefined')
resData += replyData;
});
res.on('end', function() {
//<TODO>Process the data</TODO>
callback(JSON.parse(resData));
});
});
req.write(post_data);
req.end();
console.log('write end');
req.on('close', function() {
console.log('connection closed!');
});
req.on('error', function(err) {
console.log('http request error : '+err);
callback({'error':err});
throw err;
});
req.on('socket', function(socket) {
console.log('socket size:'+socket.bufferSize);
socket.on('data', function(data) {
console.log('socket data:'+data);
});
});
}
]}`
ECONNRESET signifie que le serveur a fermé la connexion pour une raison quelconque. Peut-être qu'il n'accepte pas que la quantité de données? Est-il un écrit server API ou quelque chose où une documentation est disponible?
Oui c'est un propre écrite serveur de l'api Java framework Spring. Toujours à la recherche de la raison de rejeter les données. Vous avez une idée que vous pourriez penser? 😉
pouvez-vous ajouter un Agent: Mozilla et Connection: Keep-Alive pour les en-têtes?
Oui c'est un propre écrite serveur de l'api Java framework Spring. Toujours à la recherche de la raison de rejeter les données. Vous avez une idée que vous pourriez penser? 😉
pouvez-vous ajouter un Agent: Mozilla et Connection: Keep-Alive pour les en-têtes?
OriginalL'auteur Hong Zhou | 2013-11-06
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème et a pu le résoudre par l'ajout d'un entête Content-Length:
Cependant, je n'ai toujours pas d'idée claire pourquoi un manque de Contenu en-tête de Longueur provoque une telle difficulté. Je suppose que c'est une sorte d'étrangeté à l'intérieur Node.js code. Peut-être que vous pouvez même appeler ça un bug, mais je ne suis pas sûr à ce sujet 😉
PS: je suis absolument intéressé plus d'informations sur la cause de ce problème. Donc merci de laisser un commentaire si vous avez une idée...
J'ai eu le même problème. J'ai essayé ta solution et ça marche!!! Je ne sais pas pourquoi, et si vous avez une idée, dites-moi s'il vous plaît. Merci.
La mienne a eu à faire avec le port de la demande. Essayé 443 SSL, mais il ne l'a pas aimé.
OriginalL'auteur Torben
Cela pourrait être une cause de le système au lieu de les questions de programmation.
http://www.murvinlai.com/remote-http-request.html
OriginalL'auteur Hong Zhou
Lorsque vous modifiez le contenu de la réponse pour sûr, vous devez également mettre à jour sur l'en-tête de la longueur du contenu:
Mais je lance sur ce problème aussi, quand j'ai essayer de faire plusieurs demande et il semble que ce n'est pas bien géré sur les différents bibliothèque pour une solution de contournement que j'ai trouvé, si ce problème persiste est d'ajouter des en-têtes:
Donc, si vous faites la demande sur les différents serveurs.. c'fermer la connexion après avoir terminé le processus. Cela a fonctionné pour moi dans le filet, nœud-http-proxy.
OriginalL'auteur onalbi