如何通过抓包工具fiddler获取java程序的http请求

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过抓包工具fiddler获取java程序的http请求相关的知识,希望对你有一定的参考价值。

firefox的fidder插件 Java程序需要设置proxy才能生效:
String url="url address";
Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,new InetSocketAddress("127.0.0.1", 8888));
URL serverUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) serverUrl.openConnection(proxy);

以下是完整参考代码:

package com.http;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;

public class Http302Redirect

public static void main(String[] args)
try
String url = "http 你的地址";
System.out.println("访问地址:" + url);

Proxy proxy = new Proxy(java.net.Proxy.Type.HTTP,
new InetSocketAddress("127.0.0.1", 8888));
URL serverUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection) serverUrl
.openConnection(proxy);
conn.setRequestMethod("GET");

conn.addRequestProperty("Accept-Charset", "UTF-8;");
conn.addRequestProperty("User-Agent",
"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Firefox/3.6.8");
conn.addRequestProperty("Referer", "http://javaniu.com/");
conn.connect();
BufferedReader reader = new BufferedReader(new InputStreamReader(
conn.getInputStream()));
StringBuffer buffer = new StringBuffer();
String line = reader.readLine();
while (line != null)
buffer.append(line).append("\\r\\n");
line = reader.readLine();

reader.close();
conn.disconnect();
System.out.println(buffer);
catch (Exception e)
e.printStackTrace();



参考技术A 默认下,Fiddler不会捕获HTTPS会话,需要你设置下, 打开Fiddler Tool->Fiddler Options->HTTPS tab 选中checkbox, 弹出对话框,点击"YES"

fiddler2抓包工具使用图文教程

原文:http://blog.163.com/hlz_2599/blog/static/142378474201381102837194/

 

一、软件简介:

   一款免费且功能强大的数据包抓取软件。它通过代理的方式获取程序http通讯的数据,可以用其检测网页和服务器的交互情况,能够记录所有客户端和服务器间的http请求,支持监视、设置断点、甚至修改输入输出数据等功能。fiddler包含了一个强大的基于事件脚本的子系统,并且能够使用.net框架语言扩展。所以无论对开发人员或者测试人员来说,都是非常有用的工具。

二、fiddler的下载与安装:

1、下载fiddler2汉化版软件,下载地址:http://www.cr173.com/soft/42248.html

2、下载完成后,解压文件,然后点击"Fiddler.exe"文件即可启动软件。

三、fiddler实用功能使用说明:

1、fiddler捕获浏览器的会话:

     能支持http代理的任意程序都能被fiddler捕获到,由于fiddler的运行机制就是监听本机上的8888端口的http代理,所以我们要将浏览器的IE代理设置为127.0.0.1:8888,我们就以360浏览器为例设置浏览器的代理:点击【工具】—【Internet选项】—【连接】—【局域网设置】,再点击代理服务器的【高级】按钮,将HTTP代理服务器地址改为127.0.0.1:8888。

技术分享

                                                          图一:设置浏览器代理

2、使用fiddler捕获HTTPS会话:

   默认情况下,fiddler是不会捕获https会话的,所以需要自行设置一下。启动软件,点击【工具】—【fiddler选项】,在弹出的新窗口中,点击HTTPS选项卡,将捕获HTTPS连接这一选项前面全打上勾,点击OK就操作成功了。如下图所示:

技术分享

                                                   图二:设置可以捕获HTTPS会话

3、fiddler主界面介绍:

     启动fiddler,我们就会看到该软件的主界面,软件窗口大体可以分为六大部分:菜单栏、工具栏、会话列表、命令行工具栏、HTTP Request显示栏、Http Response显示栏。让你在捕获数据的时候一目了然。

技术分享

                                                               图三:fiddler主界面图

4、查看HTTP统计视图:

      通常fiddler会话列表中会显示捕获的所有的http通信量,并以列表的形式展示出来,点击你想查看的一个或者多个会话,再点击软件右边的【统计】菜单,你就可以很轻松的查看到请求数、发送字节数等信息。如果你选择第一个请求和最后一个请求,还可以获得页面加载所消耗的总体时间,还可以从图表中分辩出那些请求耗时最多,从而可以对页面的访问速度进行优化。

技术分享

                                                            图四:查看某一会话的详细信息

5、QuickExec命令行的使用:

     QuickExec命令行是会话列表下边的黑色区域,你可以在里面输入命令,回车之后即可执行你的命令,非常方便,在这里为大家介绍几个常用的命令:

      help  打开官方的使用页面介绍,所有的命令都会列出来

      cls   清屏  (Ctrl+x 也可以清屏)

      select  选择会话的命令

      ?.png  用来选择png后缀的图片

      bpu  截获request

技术分享

                                                     图五:QuickExec命令行的使用

6、如何在fiddler中设置断点修改Response:

   主要有两种方法:

1、点击【设置】菜单—【自动断点】—【响应之后】,这种方法是中断所有的会话,如果你想消除断点的话,就点击【设置】—【自动断点】—【禁用】就可以了。

2、在QuickExec命令行中输入:"bpuafter 网址/会话名",这种方法是中断某一具体的会话,如果想消除命令的话,在命令行中输入"bpuafter"。

   7、如何在fiddler中创建AUTOResponder规则:

        设置AUTOResponder规则的好处是允许你从本地返回文件,而不用将http request发送到服务器上。我们就以访问博客园网站为例说明一下该功能的用法。

        1) 打开博客园首页,把博客园的LOGO图片保存在本地,并把图片修改一下。

        2) 打开fiddler找到刚才我们有该LOGO图片的会话,然后点击软件右边的自动响应选项卡,在"Enable authomatic reponses"和"permit passthrought unmatched requests"前面都打上勾,将会话拖到"自动响应"列表框中。

        3) 在右下角的Rule Editor的第二个文本框选择"Find a File……",然后选择本地保存的图片,点击"SAVE"按钮保存就可以了。

技术分享

                                                              图六:选择修改后的LOGO文件       

     4) 我们再次打开博客园首页,注意观察LOGO图片已经变成我们所修改的那张了。

技术分享

                                                           图七:效果图

  8、fiddler的会话比较功能的使用:

       选中两个会话,右键点击"Compare",就可以利用WinDiff来比较两个会话有什么不同了。(注:使用这个功能的前提是你要安装有WinDiff)

技术分享

                                                             图八:比较两个会话

  9、fiddler还有编码小工具,下面我们来看一下应该怎么使用:

     1)单击工具栏的"编码器"按钮

     2)在弹出的新窗口中,你就可以操作了,如下图所示。

技术分享

                                                                 图九:编码工具的使用

  10、fiddler查询会话:

      1)点击【编辑】菜单—【查询会话】或者使用快捷键Ctrl+F。

      2)在弹出的新窗口中输入你要查询会话,点击"find session"按钮之后,你就会发现查询到的会话会用黄色标注出来。

技术分享

                                                    图十:寻找会话—填写会话关键词

技术分享

                                                 图十一:被找出的会话用黄色标注出来了

  11、如何在VS调试网站的时候使用Fiddler:

        如果你想在用visual stuido 开发ASP.NET网站的时候也用Fiddler来分析HTTP, 但是默认的Fiddler是不能嗅探到localhost的网站。有两个方法可以供你选用:

      1)你只要在localhost后面加个点号,Fiddler就能嗅探到。例如:原本ASP.NET的地址是 http://localhost:2391/Default.aspx,加个点号后,变成 http://localhost.:2391/Default.aspx 之后就可以被fiddler捕获到了。

技术分享

                                               图十二:捕获localhost的网站

      2)在hosts文件中加入127.0.0.1  localsite这样也可以被捕获到。

以上是关于如何通过抓包工具fiddler获取java程序的http请求的主要内容,如果未能解决你的问题,请参考以下文章

如何通过抓包工具fiddler获取java程序的http请求

如何通过抓包工具fiddler获取java程序的http请求

如何通过抓包工具fiddler获取java程序的http请求

Charles ios抓包

fiddler获取响应时间以及服务器IP

fiddler2抓包工具使用图文教程