咱們使用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