Apache httpclient的execute方法调试

    xiaoxiao2023-10-06  138

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

    汪子熙 认证博客专家 前端框架 Node.js SAP JerryWang,2007年从电子科技大学计算机专业硕士毕业后加入SAP成都研究院工作至今。Jerry是SAP社区导师,SAP中国技术大使。2020年5月下旬,Jerry做了脑部肿瘤的开颅切除手术,对编程和人生又有了新的感悟。
    最新回复(0)