windows下,命令行的请求,如何抓包
发布于 9 年前 作者 ralcen 12696 次浏览 最后一次编辑是 8 年前 来自 问答

在开发中我们可能会在node中请求其它的地址,例如

 request("http://baidu.com", function (error, response, body) {
    })

我们该怎么抓到这个请求呢 fiddler? 我查了fiddler没有查到怎么抓命令行的包。默认是抓不到的,如果fiddler可以,请告诉我一下,怎么配置呢

10 回复

node debug即可

@i5ting node debug 不是断点调试吗,我想看到真实的网络请求呢 这是我查的node debug 可选项 用途 run 执行脚本,在第一行暂停 restart 重新执行脚本 cont, c 继续执行,直到遇到下一个断点 next, n 单步执行 step, s 单步执行并进入函数 out, o 从函数中步出 setBreakpoint(), sb() 当前行设置断点 setBreakpoint(‘f()’), sb(…) 在函数f的第一行设置断点 setBreakpoint(‘script.js’, 20), sb(…) 在 script.js 的第20行设置断点 clearBreakpoint, cb(…) 清除所有断点 backtrace, bt 显示当前的调用栈 list(5) 显示当前执行到的前后5行代码 watch(expr) 把表达式 expr 加入监视列表 unwatch(expr) 把表达式 expr 从监视列表移除 watchers 显示监视列表中所有的表达式和值 repl 在当前上下文打开即时求值环境 kill 终止当前执行的脚本 scripts 显示当前已加载的所有脚本 version 显示v8版本

那就ajax在chrome里看,也可以fiddle,charlse等

@i5ting ajax 是不能访问http://baidu.com啊啊啊。。。。

const request = require('request');
const http = request.defaults({
	proxy: "http://127.0.0.1:8888",	//for fiddler
	jar: true,
	headers: {
		Accept: '*/*',
		"User-Agent": 'Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36'
	}
});

其实原理就是http.requestopts.host设置为你自己的代理服务,想抓包的话就是指给fiddler127.0.0.1:8888node的话就这样写,

 if (config.PROXY.DEBUG) {
        hostname = config.PROXY.DEBUG_SERVER.HOST;
        port = config.PROXY.DEBUG_SERVER.PORT;
    }

    var req = http.request({
        hostname: hostname,
        port: port,
        method: options.method,
        path: options.path,
        headers: Object.assign({}, options.headers),
        agent: false
    });

@hellopao 我懂了,谢谢你,感觉用这个 proxy 我还可以抓国外的网站,顺便问一下,request的api到哪看呢,github地址的md写的不详细,我想知道全部的配置,你怎么发现的呢

这个proxy只是用来把请求发到你的代理服务器上,然后通过代理请求发到真实服务器上,主要用途就是抓包了。给设置httpclient代理属于基本功能了,request这么成熟的库肯定会有,readme里就有写的,你搜下'proxy'

好的

@hellopao 留名备用,赞!

回到顶部