Apache httpclient的execute方法调试
因为工作需要,想研究一下execute执行的逻辑。
在这一行调用execute:
response = getHttpClient().execute(get);
getHttpClient的实现:
private HttpClient getHttpClient() { if (this.m_httpClient == null) { this.m_httpClient = HttpClientBuilder.create().build(); } return this.m_httpClient; }
我在代码里声明的HttpClient只是一个接口,
实现类是InternalHttpClient。
首先根据传入的请求决定出目标-target host
投递到RedirectExec执行。
后者又投递到RetryExec执行。
收到307重定向:
redirectsEnabled标志位为true:
再看当前的请求确实被redirect了吗?
original url:
我的后台服务器返回的307,落到了分支HttpStatus.SC_TEMPORARY_REDIRECT处:
看来Apache的库认为只有HEAD和GET才能被redirect:
重定向最大次数:50
准备重试了:
要获取更多Jerry的原创文章,请关注公众号"汪子熙"。
相关推荐
84487600 2020-08-16
似水流年梦 2020-08-09
knightwatch 2020-07-26
fengchao000 2020-06-16
标题无所谓 2020-06-14
sicceer 2020-06-12
yanghui0 2020-06-09
yanghui0 2020-06-09
创建一个 HttpClient 实例,这个实例需要调用 Dispose 方法释放资源,这里使用了 using 语句。接着调用 GetAsync,给它传递要调用的方法的地址,向服务器发送 Get 请求。
wanghongsha 2020-06-04
jiaguoquan00 2020-05-26
zhaolisha 2020-05-16
wanghongsha 2020-05-05
wanghongsha 2020-04-14
knightwatch 2020-04-11
hygbuaa 2020-03-27
zergxixi 2020-03-24