快好知 kuaihz订阅观点

 

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的原创文章,请关注公众号"汪子熙":

本站资源来自互联网,仅供学习,如有侵权,请通知删除,敬请谅解!
搜索建议:httpclient  httpclient词条  调试  调试词条  execute  execute词条  方法  方法词条  Apache  Apache词条  
综合

 使用西门子博途 SCL高级语言编...

博途 SCL高级语言编写如何开启运行时间最少的几台设备需求:如果客户共有8台水泵,4用4备,但每次启动设备时累计运行时需要最运行时间最短的4台运行。解析:如果使...(展开)