在IntelliJ idea中使用fiddler捕获Web请求
来源:互联网 发布:美国新屋开工数据 编辑:程序博客网 时间:2024/06/08 18:54
遇到的一个通用的需求就是用java程序来写get或post程序时如果能够捕获http请求和响应的过程,那会是很有帮助的。
通过fiddler可以实现以上的需求。
步骤1:安装fiddler 参考这里
【HTTP】Fiddler(一) - Fiddler简介
步骤2:在java程序中使用
模拟get请求的静态方法
/** * 模拟get请求服务器资源 * @param strUrl */ public static void mimicGet(String strUrl) { //使程序通过代理服务器( proxy server )访问Web //代理服务器接收到从本地客户端到远程服务器的请求。代理服务器向远程服务器发出请求,再将结果转发回本地客户端。 //此处代理服务器就是fiddler //在Java代码中调用System.setProperty () //使用纯粹的HTTP代理,将http.proxyHost设置为代理服务器的域名或IP地址 System.setProperty("http.proxyHost", "127.0.0.1"); System.setProperty("https.proxyHost", "127.0.0.1"); System.setProperty("http.proxyPort", "8888"); System.setProperty("https.proxyPort", "8888"); try { URL u = new URL(encodeUrl(strUrl)); try { try (InputStream in = new BufferedInputStream(u.openStream())) { InputStreamReader theHTML = new InputStreamReader(in); int c; while ((c = theHTML.read()) != -1) { System.out.print((char) c); } } } catch (MalformedURLException ex) { System.err.println(ex); } catch (IOException ex) { System.err.println(ex); } } catch (MalformedURLException e) { e.printStackTrace(); }} /** * 将queryString转换为utf-8编码的16位ASCII字符串 * https://www.baidu.com/search?wd=木&rsv_spt=1 * @param queryString 为wd=木&rsv_spt=1 * @return */ public static String encodeQueryString(String queryString) { StringBuilder sb = new StringBuilder(); String[] split = queryString.split("&"); for (String str : split) { String[] split1 = str.split("="); try { sb.append(URLEncoder.encode(split1[0], "utf-8")); sb.append("="); sb.append(URLEncoder.encode(split1[1], "utf-8")); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } sb.append("&"); } String s = sb.toString(); return s.substring(0,s.length() - 1); } /** * 将url字符串转换为utf-8编码的16位ASCII字符串 * @param urlStr * @return */ public static String encodeUrl(String urlStr) { int index = urlStr.lastIndexOf("?")+1; return urlStr.substring(0, index) + encodeQueryString(urlStr.substring(index)); }
测试方法
@Testpublic void testMimicGet() { String str = "http://www.baidu.com/s?wd=木"; WebUtil.mimicGet(str);}
Fiddler成功捕获
阅读全文
0 0
- 在IntelliJ idea中使用fiddler捕获Web请求
- 在Intellij IDEA中使用Bitbucket管理web工程
- 在IntelliJ IDEA中使用JUnit5
- 在intellij idea中使用Hibernate详细
- 如何在Intellij Idea中使用GitHub
- 在Intellij IDEA中使用Debug
- 在Intellij IDEA中使用Debug
- 在IntelliJ IDEA中使用 GIT
- 在IntelliJ IDEA中使用 Tomcat
- 在Intellij IDEA中使用Debug
- IntelliJ IDEA如何在Gradle项目中支持Web Application
- Intellij IDEA 使得Web项目在Tomcat中部署运行
- 在intelliJ IDEA下在web项目中使用hibernate出现java.lang.ClassNotFoundException: org.hibernate.criterion.Criteri
- Intellij IDEA使用(二)—— 在Intellij IDEA中配置JDK(SDK)
- Intellij IDEA使用(三)——在Intellij IDEA中配置Tomcat服务器
- 在 Intellij IDEA 使用 Maven
- Intellij idea下载及使用Intellij idea开发web
- Fiddler支持捕获Firefox请求
- java调用webservice的四种方式
- 06构建一个数据库测试
- windows 2008 命令行 控制 防火墙 入站 出站 规则
- Redis Sentinel机制与用法说明
- 在lua环境中使用protobuf
- 在IntelliJ idea中使用fiddler捕获Web请求
- 事务无法回滚(mysql数据库存储引擎问题)
- javaSE_8系列博客——重要的基础Java类——多线程--2--进程和线程
- Android--百度地图学习笔记(一)
- 括号配对问题
- Java学习路线
- js中的事件委托或是事件代理详解
- 推荐技术资料
- Node.js的初探