如何使用Fiddler从请求节点库中捕获http消息

mup*_*n82 18 fiddler node.js

在Fiddler中可以很好地捕获常规客户端发起的对节点服务器的请求.但是,不会捕获从节点发送到Web服务的请求.将代理配置(127.0.0.1:8888)传递给请求方法没有帮助.如何通过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" );
});
Run Code Online (Sandbox Code Playgroud)

请求回购:https://github.com/mikeal/request

ido*_*ize 23

我只是尝试自己这样做(使用Fiddler和来自npm的请求库).以下是我如何使用它:

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");
});
Run Code Online (Sandbox Code Playgroud)

这与Fiddler2使用默认端口和代理选项(并且没有代理身份验证).

  • 非常感谢.设置NODE_TLS_REJECT_UNAUTHORIZED确实有帮助.没有它,https请求将不适合我.只是好奇,这个环境变量是什么意思? (2认同)

Pon*_*oni 5

Fiddler的工作原理是将"Internet选项"(从开始菜单)"连接">"局域网设置">"代理服务器"设置到其端口,从而使所有HTTP流量(遵循此设置的客户端)通过它.

您应该指向node.js客户端lib以使用代理,在启动Fiddler之后,将在该选项对话框中编写设置.