【HttpClient4.5中文教程】八.終止請求和重定向處理
1.終止請求
在一些情況下,由於目標伺服器的高負載或客戶端有很多同時的請求發出,那麼 HTTP 請求會在預期的時間內執行失敗。 這時,有必要過早地中止請求,解除在 I/O 執行中的執行緒鎖。 HttpClient 執行時,可以在任意階段通過呼叫HttpUriRequest#abort()方法中止請求。 這個方法是執行緒安全的,而且可以從任意執行緒中呼叫。當一個 HTTP 請求被中止時,它的執行執行緒--就封鎖在 I/O 操作中了--而且保證通過丟擲InterruptedIOException異常來解鎖。2.重定向處理
HttpClient自動處理所有型別的重定向。除了那些由 HTTP 規範明令禁止的,比如需要用戶干預的。參考其它(狀態碼 303)POST 和 PUT 請求的重定向轉換為符合 HTTP 規範要求的 GET請求。你可以使用一個重定向策略,來突破POST方法自動重定向的限制(POST自動重定向為HTTP規範強加)。
在請求報文執行過程中,HttpClient經常需要改寫它。每個預設的HTTP/1.0和HTTP/1.1使用相對URI。同樣,原始請求需要從一個地址重定向到另一個地址多次。最終絕對的HTTP地址將會被原始的請求和上下文構建。功能方法URIUtils#resolve被使用來構建最終請求形成的絕對URI。這個方法包含了來自於重定向和原始請求的上一個標識。