如何设置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开发者工具的角色。

本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

相关文章
|
2月前
|
Java
java原生发送http请求
java原生发送http请求
|
2月前
|
Java 开发者
java实现Http请求
java实现Http请求
24 0
|
2月前
|
JSON Java 数据安全/隐私保护
java中的http请求的封装(GET、POST、form表单、JSON形式、SIGN加密形式)
java中的http请求的封装(GET、POST、form表单、JSON形式、SIGN加密形式)
|
2月前
|
缓存 算法 安全
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍(二)
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍
33 0
|
2月前
|
缓存 Java C#
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍(一)
【JVM故障问题排查心得】「Java技术体系方向」Java虚拟机内存优化之虚拟机参数调优原理介绍
123 0
|
2天前
|
Prometheus 监控 Cloud Native
Java 服务挂掉,服务器异常宕机问题排查
Java 服务挂掉,服务器异常宕机问题排查
8 1
|
1天前
|
缓存 监控 Java
Java中的内存泄漏及其排查方法
Java中的内存泄漏及其排查方法
|
26天前
|
移动开发 Java
Java Socket编程 - 基于Socket实现HTTP下载客户端
Java Socket编程 - 基于Socket实现HTTP下载客户端
19 1
|
6天前
|
数据采集 Java API
Java HTTP客户端工具的演变之路
Java HTTP客户端工具的演变之路
|
7天前
|
缓存 监控 Java
Java中的内存泄漏及其排查方法
Java中的内存泄漏及其排查方法