2012-10-18 4 views
12

Ich hacke zusammen einige node.js Code, der einen externen Webservice aufruft und ich bekomme schlechte Ergebnisse. Ich möchte die rohe Anfrage und Antwort protokollieren, damit ich sie überprüfen kann.wie ausgehende https Anfragen von Knoten innerhalb Webstorm protokollieren

Hier ist die Sache: Ich nehme nicht die HTTP-Bibliothek direkt, ich bin es über eine OAuth-Bibliothek verbrauchen.

Ich bin bereits hinzufügen Debug-Anweisungen in der oauth Bibliothekscode und ich mag es nicht. Jetzt sieht es so aus, als müsste ich in die http-Bibliothek gehen und anfangen, damit zu spielen? Dies kann nicht korrekt sein.

Wenn ich auf Windows wäre, würde ich Fiddler anstellen. Ein Freund erwähnt wireshark aber wireshark sagt mir, dass ich X11 installieren muss. "Ja wirklich?" Ich gehe nicht in dieses Kaninchenloch.

Dann versuchte ich Node-Inspector, aber ich denke, das ist für Server-Code nicht Client-Code. Es besagt, dass Sie Ihren Knotenprozess vor dem Anhängen starten sollen. Nun, mein Knotenprozess ist ein Testfall (Gelübde), der kurz nach dem Start endet ... also kein Glück.

Ich denke, das wäre schwierig mit jedem Stapel, aber jeez, es macht mich zu verpassen .net!

Also, wie kann ich überprüfen, was über die Leitung geht, wenn Sie node.js als Client für externen Webservice auf Berglöwen verwenden?

danke! Dan

+0

Haben Sie jemals etwas Glück dabei gefunden? –

Antwort

14

Managed einen Haken installieren auf http/https Anfrage aus dem gleichen Grund.

function requestLogger(httpModule){ 
    var original = httpModule.request 
    httpModule.request = function(options, callback){ 
     console.log(options.href||options.proto+"://"+options.host+options.path, options.method) 
     return original(options, callback) 
    } 
} 

requestLogger(require('http')) 
requestLogger(require('https')) 
+1

Beachten Sie, dass die Verwendung dieser Methode zweimal für https-Anforderungen protokolliert wird, da https.request() nur an http.request() delegiert wird. Fügen Sie einfach die Protokollierung zu "http" hinzu und erraten Sie das Protokoll, indem Sie testen, ob "options._defaultAgent" existiert (was in "https.request()" eingestellt ist). –

+0

Ist 'options.proto' nicht ausreichend, um festzustellen, ob die Anfrage http oder https verwendet? – Gomino

Verwandte Themen