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

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

相关文章
|
4月前
|
前端开发 JavaScript Java
IDEA Maven install Failed to execute goal org.apache.maven.plugins异常处理
IDEA Maven install Failed to execute goal org.apache.maven.plugins异常处理
86 0
|
5月前
|
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
|
2月前
|
Java Apache
Apache HttpClient 4.5设置超时时间
Apache HttpClient 4.5设置超时时间
|
4月前
|
SQL 分布式计算 Hadoop
【已解决[ERROR] Could not execute SQL statement. Reason:java.lang.ClassNotFoundException: org.apache.had
【已解决[ERROR] Could not execute SQL statement. Reason:java.lang.ClassNotFoundException: org.apache.had
82 0
|
4月前
|
数据采集 安全 Java
Kotlin+Apache HttpClient+代理服务器=高效的eBay图片爬虫
本文将为你介绍一种高效的eBay图片爬虫的实现方式,让你可以用Kotlin+Apache HttpClient+代理服务器的组合来轻松地下载eBay的图片。
Kotlin+Apache HttpClient+代理服务器=高效的eBay图片爬虫
|
4月前
|
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
168 0
|
4月前
|
消息中间件 Kafka Apache
Apache Flink消费Kafka数据时,可以通过设置`StreamTask.setInvokingTaskNumber`方法来实现限流
Apache Flink消费Kafka数据时,可以通过设置`StreamTask.setInvokingTaskNumber`方法来实现限流
74 1
|
7月前
|
Arthas Java 测试技术
一次NSF FeignClient支持Apache HttpClient的优化
一次NSF FeignClient支持Apache HttpClient的优化
212 2
|
8月前
|
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
2005 0

热门文章

最新文章

推荐镜像

更多