Apache httpclient的execute方法调试

时间:2022-06-21
本文章向大家介绍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

准备重试了: