2016-05-15 7 views
0

In node.js ich die HTTP-Anfrage-Modul bin mit dieser Anfrage machenNode.js Post-Anforderung auf http Finishing nicht

var post_req = http.request({ 
    host: 'api.site1.ciscozeus.io', 
    path: '/logs/' + ZUES_TOKEN + '/' + logName + '/', 
    port: 80, 
    method: 'POST', 
    headers: { 
     'Content-type' : 'application/x-www-form-urlencoded' 
    } 
}, function(res) { 
    res.on('data', function (chunk) { 
     console.log(1); 
     cb(chunk); 
    }); 
}); 
post_req.write(JSON.stringify({ 
    "logs" : JSON.stringify('[{"test":"value1"}]') 
})); 
post_req.on('error', function(e) { 
    console.error(e); 
}); 
post_req.end(); 

Aber ich bin das Problem ist, es nicht in cb(chunk); zu gehen scheint. Wie es die Endversprechenfunktion nicht nennt. Es druckt console.log (1) nicht.

Die API hat eine Testseite mit einem ausprobieren, und wenn ich es dort versuche, funktioniert es. Hier ist, wie die Protokolle Daten aussieht, wenn ich es prüfen, wenn es in diesem Tool funktioniert:

enter image description here enter image description here

Wer weiß, ob ich die Protokolle Daten bin Befestigung falsch? Ich möchte die gleichen Daten posten.

Dank

+0

Sie müssen JSON.stringify() nicht für eine Zeichenfolge aufrufen, die bereits eine Zeichenfolge ist. Ihre Anfrage ist wahrscheinlich fehlerhaft. Höre auf res.on ('err', ...) und sieh zu, ob dir das einen Hinweis gibt. –

Antwort

0
post_req.write(JSON.stringify({ 
    "logs" : JSON.stringify('[{"test":"value1"}]') 
})); 

in dem obigen Teil des Codes der interne JSON.stringify falsch ist. Sie sollten einfach 'logs' : [{'test' : 'value1'}] schreiben. Die äußere JSON.stringify wird die Konvertierung von JSON object in string übernehmen.

Verwandte Themen