如何設定Fiddler來攔截Java程式碼傳送的HTTP請求,進行各種問題排查

i042416發表於2019-12-29

我們使用Java的RestTemplate或者Apache的HTTPClient程式設計的時候,經常遇到需要跟蹤Java
程式碼傳送的HTTP請求明細的情況。和javascript程式碼在瀏覽器裡傳送請求可以通過Chrome開發者工具方便地跟蹤一樣,對於Java程式碼傳送的網路請求,我們也可以使用工具Fiddler來監控。

開啟Fiddler,在connections皮膚裡找到Fiddler監聽的埠號8888:

如何設定Fiddler來攔截Java程式碼傳送的HTTP請求,進行各種問題排查

如果是使用Apache的HTTPClient進行網路請求傳送,程式碼如下:

如何設定Fiddler來攔截Java程式碼傳送的HTTP請求,進行各種問題排查

使用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:

如何設定Fiddler來攔截Java程式碼傳送的HTTP請求,進行各種問題排查

Java程式碼收到的伺服器端返回的錯誤訊息:

如何設定Fiddler來攔截Java程式碼傳送的HTTP請求,進行各種問題排查

這個錯誤訊息在Fiddler裡當然也是可以看到的:

如何設定Fiddler來攔截Java程式碼傳送的HTTP請求,進行各種問題排查


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

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

如何設定Fiddler來攔截Java程式碼傳送的HTTP請求,進行各種問題排查


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2671133/,如需轉載,請註明出處,否則將追究法律責任。

相關文章