解决fiddler不能抓取eclipse发出接口请求的问题

使用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);

 

posted @ 2018-11-21 11:54  helentester  阅读(2596)  评论(0编辑  收藏  举报