mitmproxy如何debug

背景:


本人window系统,看cmd是报’NoneType’没有content的错,明显就是找不到或者找错response的原因,
于是我看视怀疑是定位pretty_url的问题,那么问题来了:
我定位不到pretty_url(因为log太乱),更加看不到response的数据结构,charles可以看到,但是不能与mitmproxy同时工作,我只能笨拙地print出来
请问:如何可以做到mitmdump运行脚本时,能更加清晰方便地看到相应的数据结构?

当然,最后发现只是方法名response错写为request

可以使用mitmproxy命令运行可视化工具或者使用mitmweb开启web端来查看具体信息。

mitmporxy 共有三大组件,命令行/web界面,随便一个都是和Charles差不多的功能,看到请求和响应数据的

对对对,可以同时使用mitmweb,那么再咨询一个问题,mitmdump,mitmweb这些都是监听端口是吧?并没有开启代理么?因为我只打开mitmdump录制脚本,并没有抓取到信息,要我打开switchyomega代理配置才可以抓到包。按我的理解,charles是可以开启代理服务器,switchy omega是代理情景模式,也就是设定了固定ip和端口才能访问(并不是开启代理),mitmdump只是监听给定端口,并没有开启代理,我的理解有错么?

对对对,可以同时使用mitmweb,那么再咨询一个问题,mitmdump,mitmweb这些都是监听端口是吧?并没有开启代理么?因为我只打开mitmdump录制脚本,并没有抓取到信息,要我打开switchyomega代理配置才可以抓到包。按我的理解,charles是可以开启代理服务器,switchy omega是代理情景模式,也就是设定了固定ip和端口才能访问(并不是开启代理),mitmdump只是监听给定端口,并没有开启代理,我的理解有错么

mitmproxy与switchyOmega是两种功能的软件
mitmproxy是代理抓包软件
switchyOmega是配置客户端代理的软件。switchyOmega的共是实现代理地质与端口的快速选择配置,免去手动输入改动麻烦的插件

  • 肯定是错的啊,mitmdump是命令行模式展示数据,mitmweb是web界面展示数据,两者基本上是一样的,只是一个有界面一个没有界面而已;
  • 用mitmdump抓包本质上和charles抓包一样,他也是一个代理服务器,都是先用安装证书,然后设置端口而已,你的问题仅仅在于用mitmdump没有抓到包而已,估计是证书或者端口设置没对;
  • switchy omega只是一个切换代理的软件,具体为:我xx抓包为A配置,xx转包为B配置,需要科学上网要C配置等,他能免去你自己去改浏览器配置,自动给你配置好,让你可以一键自由切换

不知道我这样说,你懂了吗

用这个办法就可以使用pycharm爽快的调试了,这是我从mitmproxy的源代码里扒出来的一个启动入口

if __name__ == '__main__':
    from mitmproxy.tools.main import mitmdump
    mitmdump()

学到了 :grinning: