Apache httpclient的execute方法調試

由於工做須要,想研究一下execute執行的邏輯。服務器

在這一行調用execute:ui

response = getHttpClient().execute(get);

getHttpClient的實現:this

private HttpClient getHttpClient() {
		if (this.m_httpClient == null) {
			this.m_httpClient = HttpClientBuilder.create().build();
		}
		return this.m_httpClient;
	}

我在代碼裏聲明的HttpClient只是一個接口,url

實現類是InternalHttpClient。code

首先根據傳入的請求決定出目標-target hostblog

投遞到RedirectExec執行。接口

後者又投遞到RetryExec執行。get

收到307重定向:class

redirectsEnabled標誌位爲true:後臺

再看當前的請求確實被redirect了嗎?

original url:

個人後臺服務器返回的307,落到了分支HttpStatus.SC_TEMPORARY_REDIRECT處:

看來Apache的庫認爲只有HEAD和GET才能被redirect:

重定向最大次數:50

準備重試了:

要獲取更多Jerry的原創文章,請關注公衆號"汪子熙":

相關文章
相關標籤/搜索