如何設置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的原創文章,請關注公眾號"汪子熙":


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM