首页 > Web开发 > 详细

Apache httpclient的execute方法调试

时间:2019-05-25 21:49:37      阅读:121      评论:0      收藏:0      [点我收藏+]

因为工作需要,想研究一下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的原创文章,请关注公众号"汪子熙":
技术分享图片

Apache httpclient的execute方法调试

原文:https://www.cnblogs.com/sap-jerry/p/10924028.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!