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
準備重試了:
要獲取更多Jerry的原創文章,請關注公眾號"汪子熙":
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24475491/viewspace-2645585/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- [原]Android 初遇Http錯誤 httpClient.executeAndroidHTTPclient
- Apache之HttpClientApacheHTTPclient
- 工具篇:apache-httpClient 和 jdk11-HttpClient的使用ApacheHTTPclientJDK
- EXECUTE IMMEDIATE 儲存過程中 許可權不足及EXECUTE IMMEDIATE的除錯避坑儲存過程除錯
- 除錯 CSS 的方法除錯CSS
- Apache HttpClient使用和原始碼分析ApacheHTTPclient原始碼
- 如何在Apache HttpClient中設定TLS版本ApacheHTTPclientTLS
- Android 中 WebView 的除錯方法AndroidWebView除錯
- Python常用的程式除錯方法Python除錯
- eclipse除錯的方法和技巧Eclipse除錯
- 使用HttpClient時出錯NoClassDefFoundErrorHTTPclientError
- python五種除錯或排錯的方法Python除錯
- HttpClient初步使用方法HTTPclient
- 【HttpClient】httpclient之post 方法(引數為Map型別)HTTPclient型別
- Android WebView 除錯方法AndroidWebView除錯
- gdb高階除錯方法高階除錯
- Delphi中除錯dll方法除錯
- Failed to execute aapt的奇怪解決方法AIAPT
- C/C++ 程式反除錯的方法C++除錯
- Vue生產環境除錯的方法Vue除錯
- 除錯工具Firebug的使用方法除錯
- c 語言除錯方法(除錯 PHP 底層、擴充套件)除錯PHP套件
- HttpClient HTTPS使用方法HTTPclient
- iOS 常用除錯方法:LLDB命令iOS除錯LLDB
- 網路除錯維護方法除錯
- android真機除錯方法Android除錯
- hibernate配置級聯刪除時報錯:could not execute statement; SQL [n/a]; constraint [null]SQLAINull
- 幽默:除錯程式碼問題的最佳方法除錯
- 求救:關於EJB單步除錯的方法除錯
- 通過 Apache Commons HttpClient 傳送 HTTPS 請求ApacheHTTPclient
- iOS 常用除錯方法:靜態分析iOS除錯
- HanLP-地名識別除錯方法HanLP地名識別除錯
- 不同Java除錯方法總結 - VardhanJava除錯
- 006 Web Assembly之除錯方法Web除錯
- 移動端除錯方法補充除錯
- GDB除錯基礎使用方法除錯
- 【除錯】ftrace(一)基本使用方法除錯
- 移動端除錯方法彙總除錯