Search code examples
node.jsfiddler

How to capture http messages from Request Node library with Fiddler


Regular client initiated requests to the node server are captured fine in Fiddler. However, requests sent from node to a web service are not captured. It did not help to pass in config for proxy (127.0.0.1:8888) to the request method. How can I route the request messages through Fiddler?

var http = require('http');
var request = require('request');

request.get(webserviceURL, { "auth" : {"user": "user", "pass" = "pass", sendImmediately: true },
"proxy" : { "host" : "127.0.0.1", "port" : 8888 }},
function (error, response) { console.log( "response received" );
});

Request repo: https://github.com/mikeal/request


Solution

  • I just tried to do this myself (using Fiddler and the request library from npm). Here's how I got it working:

    process.env['NODE_TLS_REJECT_UNAUTHORIZED'] = '0'; // Ignore 'UNABLE_TO_VERIFY_LEAF_SIGNATURE' authorization error
    
    // Issue the request
    request(
    {
        method: "GET",
        uri: "https://secure.somewebsite.com/",
        proxy: "http://127.0.0.1:8888" // Note the fully-qualified path to Fiddler proxy. No "https" is required, even for https connections to outside.
    },
    function(err, response, body) {
        console.log("done");
    });
    

    This is with Fiddler2 using the default port and proxy options (and no proxy authentication).