如何設置Fiddler來攔截Java代碼發送的HTTP請求,進行各類問題排查

咱們使用Java的RestTemplate或者Apache的HTTPClient編程的時候,常常遇到須要跟蹤Java
代碼發送的HTTP請求明細的狀況。和javascript代碼在瀏覽器裏發送請求能夠經過Chrome開發者工具方便地跟蹤同樣,對於Java代碼發送的網絡請求,咱們也能夠使用工具Fiddler來監控。javascript

打開Fiddler,在connections面板裏找到Fiddler監聽的端口號8888:java

若是是使用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裏固然也是能夠看到的:electron

在這種場景裏,Fiddler扮演的就是相似Chrome開發者工具的角色。工具

要獲取更多Jerry的原創文章,請關注公衆號"汪子熙":
ui

相關文章
相關標籤/搜索