java程序配置fiddler,捕获localhost,127.0.0.1发出的请求

本文详细记录了使用Fiddler进行Java应用程序HTTP请求抓包的配置过程,包括Fiddler证书导入、JVM参数设置以及OkHttpClient代理配置。重点在于,通过设置代理使得Fiddler能够成功捕获请求,避免了不必要的证书和JVM参数修改。

按照网上的方法

1-把FiddlerRoot.cer放入了这个文件夹

证书生成在fiddler软件里面Tools——》Actions——》导出到桌面

 

 

 

2-执行以下操作

之前跟着一个教程直接敲,让我去security的目录敲这个命令,但是找不到,后来搜了一下keytoole.exe的所在目录, 就在这个目录这执行这个命令。

这里的证书目录我刚开始选择的java里面的security,但是失败, 把证书拷贝一份放了d盘就成功了。

keytool.exe -import -file D:\devsoft\fiddler\FiddlerRoot.cer -keystore D:\FiddlerKeystore -alias Fiddler

 密码输入123456

 3-修改jvm参数

据说后面两排是https请求要加的,反正官方那里没有这两行。之前这个参数已经改过,没啥用,死马当活马医,有新的参数都招呼上去。

-DproxySet=true
-Dhttp.proxyHost=127.0.0.1
-Dhttp.proxyPort=8888
-Djavax.net.ssl.trustStore=D:\FiddlerKeystore
-Djavax.net.ssl.trustStorePassword=123456

 

上面的都试了一遍,发现还是不行。

后来看到一篇文章说,

4-如果你是通过httpclient发送的接口请求,需要在发送请求之前设置代理

8888是fiddler的端口,参数这些都不用改。

 OkHttpClient client = new OkHttpClient.Builder().proxy(new Proxy(Proxy.Type.HTTP,new InetSocketAddress("127.0.0.1",8888)))
                    .readTimeout(1000L, TimeUnit.MINUTES).build();

找了无数方法,终于配成功了。 最后是通过设置代理成功的。

在发请求之前配个fiddler的代理才是正道,其他那些都用不着。所以官方那里其实只有一句话,就是配jvm参数,但我因为不是用java原生代码来发送请求的,所以可能绕过了,没有通过代理。就要手动给HttpClient设置代理,设置完这个,都不用重启就直接成功了。

后来把security的证书删掉,jvm的参数配置删掉,都还是能捕获到。所以配置fiddler就是一个要点:在发送请求以前,让fiddler代理。不然就拦截不到请求,自然也捕获不了。

感谢【Fiddler的Java抓包 - 下士闻道 - 博客园】,通过这个得知主要是设置代理,后来就去百度搜OKHttpClient怎么设置代理就完事了。

fiddler抓取Java程序内部的HTTP请求包 - 灰信网(软件开发博客聚合)】把证书加到密钥,虽然对最终目的没啥用,但是之前想操作这一步而没有成功,看着这个教程操作成功了,还是挺开心的。

<think>好的,我需要帮助用户在Fiddler配置代理。首先,根据用户提供的引用内容,特别是引用[1]和引用[2],Fiddler可以作为反向代理使用,并且配置HTTPS时需要安装证书。我需要先整理配置代理的步骤,确保涵盖HTTPHTTPS的设置,同时注意用户提到的默认抓取HTTP请求以及HTTPS可能出现的安全警告。 首先,启动Fiddler后,用户需要进入Tools -> Options菜单。这里应该有两个主要标签:Connections和HTTPS。在Connections中,设置代理端口,默认是8888,用户可能需要检查端口是否被占用。然后启用“Allow remote computers to connect”以允许其他设备通过该代理连接,这在移动设备调试时很重要。 接下来是HTTPS配置,这部分用户可能会遇到问题,如浏览器提示不安全,所以必须确保在HTTPS标签下勾选“Decrypt HTTPS traffic”,然后安装根证书。根据引用[2],安装证书后可以解决网页不安全的问题。这里需要详细说明安装步骤,可能包括点击Actions按钮导出证书,并在浏览器或系统中安装。 然后是浏览器或系统代理的设置,用户需要将代理地址设置为127.0.0.1,端口8888。对于其他设备,可能需要设置同一网络下的IP和端口。此外,用户可能需要重启Fiddler或浏览器使设置生效,同时记得在使用完毕后关闭代理,避免影响正常上网。 在整理过程中,我需要确保步骤清晰,符合用户的实际操作流程,同时引用相关的引用内容来支持步骤的正确性。例如,引用[1]提到Fiddler作为反向代理配置,而引用[2]强调HTTPS证书安装的重要性。此外,注意用户可能需要匿名使用信息的相关提示,如引用[3]提到的内容,但可能在此问题中不直接相关,可以暂时忽略。 最后,生相关问题时要围绕Fiddler代理配置HTTPS解密、反向代理应用和证书管理等方面,确保问题对用户有进一步的帮助。检查是否有遗漏的步骤,比如防火墙设置或证书信任问题,可能需要用户在特定环境中调整,但根据现有引用内容,主要步骤已经涵盖。</think>### 如何在Fiddler配置代理 #### 1. **启动Fiddler并进入代理设置** - 打开Fiddler,点击顶部菜单栏的 **Tools -> Options**。 - 在设置窗口中,切换到 **Connections** 标签页,配置代理端口(默认为`8888`),勾选 **Allow remote computers to connect** 以允许其他设备通过此代理连接[^1]。 #### 2. **配置HTTPS解密(可选但推荐)** - 切换到 **HTTPS** 标签页,勾选 **Decrypt HTTPS traffic**,Fiddler会自动生根证书。 - 点击 **Actions -> Export Root Certificate to Desktop** 将证书导出到桌面,然后在浏览器或系统中安装此证书以解决HTTPS请求的安全警告[^2]。 #### 3. **设置系统或浏览器代理** - **本地浏览器**:在浏览器设置中手动配置代理为`127.0.0.1:8888`。 - **移动设备**:确保设备与电脑在同一网络,并在Wi-Fi设置中配置代理为电脑的IP地址和端口`8888`。 #### 4. **验证代理生效** - 访问任意网页或触发应用请求Fiddler的会话列表会显示捕获请求。若未捕获,检查防火墙是否放行Fiddler。 #### 5. **关闭代理(完后必做)** - 在Fiddler中取消勾选 **File -> Capture Traffic**,或直接关闭软件,避免影响正常网络使用。 --- ### 示例配置代码(反向代理场景) ```text # 反向代理规则示例(需结合FiddlerScript) if (oSession.HostnameIs("example.com")) { oSession.host = "localhost:8080"; // 将请求转发到本地端口 } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值