Apache httpclient的execute方法调试

简介: 因为工作需要,想研究一下execute执行的逻辑。 在这一行调用execute: response = getHttpClient().execute(get); getHttpClient的实现: private HttpClient getHttpClient() { if (this.

因为工作需要,想研究一下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只是一个接口,

clipboard1

实现类是InternalHttpClient。

clipboard2

首先根据传入的请求决定出目标-target host

clipboard3

投递到RedirectExec执行。

clipboard4

后者又投递到RetryExec执行。

clipboard5

收到307重定向:

clipboard6

redirectsEnabled标志位为true:

clipboard7

再看当前的请求确实被redirect了吗?

clipboard8

original url:

clipboard9

我的后台服务器返回的307,落到了分支HttpStatus.SC_TEMPORARY_REDIRECT处:

clipboard10

看来Apache的库认为只有HEAD和GET才能被redirect:

clipboard11

重定向最大次数:50

clipboard12

准备重试了:

clipboard13

本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

相关文章
|
2月前
|
前端开发 JavaScript Java
IDEA Maven install Failed to execute goal org.apache.maven.plugins异常处理
IDEA Maven install Failed to execute goal org.apache.maven.plugins异常处理
59 0
|
2月前
|
数据采集 安全 Java
Kotlin+Apache HttpClient+代理服务器=高效的eBay图片爬虫
本文将为你介绍一种高效的eBay图片爬虫的实现方式,让你可以用Kotlin+Apache HttpClient+代理服务器的组合来轻松地下载eBay的图片。
Kotlin+Apache HttpClient+代理服务器=高效的eBay图片爬虫
|
2月前
|
Java Maven
Maven打包出错Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test
Maven打包出错Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test
140 0
|
2月前
|
消息中间件 Kafka Apache
Apache Flink消费Kafka数据时,可以通过设置`StreamTask.setInvokingTaskNumber`方法来实现限流
Apache Flink消费Kafka数据时,可以通过设置`StreamTask.setInvokingTaskNumber`方法来实现限流
52 1
|
3月前
|
Java Maven
Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4
Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.12.4
|
5月前
|
Arthas Java 测试技术
一次NSF FeignClient支持Apache HttpClient的优化
一次NSF FeignClient支持Apache HttpClient的优化
201 2
|
6月前
|
Java Maven Android开发
成功解决maven打war包报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2
成功解决maven打war包报错:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2
|
Java Maven Windows
解决 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile
解决 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile
1807 0
|
Java Maven
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compil
maven-compliler-plugin版本与maven版本不一致,Maven版本太低或maven-compiler-plugin版本过高
3135 0
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:compile (default-compil
|
Apache
给Apache虚拟主机增加端口的方法
给Apache虚拟主机增加端口的方法
98 0

推荐镜像

更多