使用eclipse執行接口時,發現在fiddler里面抓不到這些請求。
網上找了很多資料都是讓在Eclipse 中設置:Windows > Preferences > Java > Installed JREs ,選中Installed JREs > Edit > 設置Default VM arguments:
-Dhttp.proxySet="true" -Dhttp.proxyHost="127.0.0.1" -Dhttp.proxyPort="8888"
或者代碼中加入如下內容:
System.setProperty("http.proxySet", "true"); System.setProperty("http.proxyHost", "127.0.0.1"); System.setProperty("http.proxyPort", "8888");
這樣的設置對我的項目完全不成效,后來才發現這個方法在HttpURLConnection下才可行,而我用的是HttpClients。
解決HttpClients抓包問題需要設置如下代理:
HttpHost proxy = new HttpHost("localhost", 8888, "http"); RequestConfig config = RequestConfig.custom().setProxy(proxy).build(); HttpPost httpPost = new HttpPost(URL); httpPost.setConfig(config);
下面是我寫的項目接口公共類,加上了代理,大家也可以參考一下
當然,也可以直接在定義httpCilent時設置(這個方法最簡潔),如下:
HttpHost proxy = new HttpHost("localhost", 8888, "http"); RequestConfig config = RequestConfig.custom().setProxy(proxy).build(); CloseableHttpClient httpCilent= HttpClientBuilder.create().setDefaultRequestConfig(config).build();
……
HttpResponse httpResponse = httpCilent.execute(httpUriRequest);