如何设置Fiddler来拦截Java代码发送的HTTP请求,进行各种问题排查
我们使用Java的RestTemplate或者Apache的HTTPClient编程的时候,经常遇到需要跟踪Java
代码发送的HTTP请求明细的情况。和javascript代码在浏览器里发送请求可以通过Chrome开发者工具方便地跟踪一样,对于Java代码发送的网络请求,我们也可以使用工具Fiddler来监控。
打开Fiddler,在connections面板里找到Fiddler监听的端口号8888:
如果是使用Apache的HTTPClient进行网络请求发送,代码如下:
使用HttpHost设置请求代理:
private static void downloadCommerce(){
HttpHost proxy = new HttpHost("localhost", 8888, "http");
RequestConfig config = RequestConfig.custom().setProxy(proxy).build();
CloseableHttpClient client= HttpClientBuilder.create().setDefaultRequestConfig(config).build();
String url = "https://jerrywang.com:9002/rest/v2/electronics/users/jerry.wang@sap.com";
String token = "test";
HttpGet get = new HttpGet(url);
get.setHeader("Authorization", "Bearer " + token);
try {
HttpResponse response = client.execute(get);
HttpEntity entity = response.getEntity();
String result = EntityUtils.toString(entity, "UTF-8");
System.out.println("url: " + result);
} catch (Exception e){
e.printStackTrace();
}
}
执行Java应用,然后到Fiddler里,看到了监控到的HTTP请求各种明细,比如Java代码里硬编码的OAuth 2的认证token test:
Java代码收到的服务器端返回的错误消息:
这个错误消息在Fiddler里当然也是可以看到的:
在这种场景里,Fiddler扮演的就是类似Chrome开发者工具的角色。
要获取更多Jerry的原创文章,请关注公众号"汪子熙":
如何设置Fiddler来拦截Java代码发送的HTTP请求,进行各种问题排查的更多相关文章
- Java代码手段防止非法请求——防盗链
Java代码手段防止非法请求,思路如下: 1. 获取到当前请求的域名,如www.a.com 2. 获取到请求资源的上一个地址 3. 判断上一个地址是否为空,如 ...
- Tomcat7设置环境变量供java代码读取
前两天要做一个后台线程分片处理任务功能,把应用放在tomcat中部署在多个服务器上,每个服务器分片处理一些任务,这里需要在java代码中获取到tomcat的信息和服务器信息.在网上找了好久,终于找到了 ...
- java代码发送邮箱验证码与qq邮箱smtp服务
发送邮箱的类封装,在此之前需要一个jar包 javax.mail.jar 下载链接https://github.com/javaee/javamail/releases/download/JAVAM ...
- 使用Java代码发送SMTP邮件
package cn.Douzi.send; import javax.mail.Session; import javax.mail.Transport; import javax.mail.int ...
- 用java代码发送http请求
//发送post请求 PrintWriter out = null; BufferedReader in = null; String result = ""; try { URL ...
- java代码发送JSON格式的httpPOST请求
package com.test; import java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOE ...
- (转)java代码发送JSON格式的httpPOST请求
import Java.io.BufferedReader; import java.io.DataOutputStream; import java.io.IOException; import j ...
- 关于java代码提交HTTP POST请求中文乱码的解决方法
首先说明下这些只是根据我工作常用经验的总结,可能不一定完全对,也不一定全面,但却是最通用的. JAVA里HTTP提交方式 httpurlconnection:jdk里自带的 httpclient:ap ...
- 敏捷开发中高质量 Java 代码开发实践
Java 项目开发过程中,由于开发人员的经验.代码风格各不相同,以及缺乏统一的标准和管理流程,往往导致整个项目的代码质量较差,难于维护,需要较大的测试投入 和周期等问题. 这些问题在一个项目组初建.需 ...
随机推荐
- EZOJ #387字符串
分析 似乎ttl的模拟赛t3总是折半搜索? 先把所有串转化为每个字母的0/1状态 之后我们将所有字符串分为两半 分别枚举状态 我们发现只有左右两边的字母状态相等才能保证这个集合合法 所以我们在搜左半边 ...
- 《图解设计模式》读书笔记3-2 Prototype模式
目录 Prototype(原型)模式的由来 类图 代码 角色 我的理解 Prototype(原型)模式的由来 创建一个实例,可以关键字new创建.但有时候,我们需要在不指定类名的前提下生成实例,比如: ...
- 测开之路八十一:参数定义之*args和**kwargs
# *,不定长参数,*args# 定义函数参数def avg(score, *scores): return (score + sum(scores)) / (len(scores) + 1) ...
- java 集合框架 List相关接口
AbstractCollection 此类提供 Collection 接口的骨干实现,以最大限度地减少了实现此接口所需的工作. 还有两个抽象方法,具体的迭代器,具体的Collection 的大小 pu ...
- pandas 增删改查
原文链接:https://blog.csdn.net/zhangchuang601/article/details/79583551 准备工作:增.删.改.查的方法有很多很多种,这里只展示出常用的几种 ...
- Looper,Handler, MessageQueue
Looper Looper是线程用来运行消息循环(message loop)的类.默认情况下,线程并没有与之关联的Looper,可以通过在线程中调用Looper.prepare() 方法来获取,并通过 ...
- Docker 官网文档翻译汇总
官方文档地址 Guide Docker 入门 Docker 入门教程 方向和设置 容器 服务 swarm 集群 stack 部署应用 概述 用 Docker 进行开发 在 Docker 上开发应用 应 ...
- redis连接报错:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to...
连接redis报错: MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persis ...
- javaweb的Filter过滤器设置全站编码
FIlter配置全站编码有一种方法是重写getParameter方法,也就是继承HttpServletRequestWrapper在重写getParameter方法,还有一种就是如下: public ...
- JavaScript.convertArray
function convertArray(nodeList){ var arr = [] if(Array.prototype.slice){ arr = [].sl ...