這些是可以用於定製默認HttpClient實現行爲的參數:
-
'http.protocol.handle-redirects':定義了重定向是否應該自動處理。這個參數期望得到一個java.lang.Boolean類型的值。如果這個參數沒有被設置,HttpClient將會自動處理重定向。
-
'http.protocol.reject-relative-redirect':定義了是否相對的重定向應該被拒絕。HTTP規範需要位置值是一個絕對URI。這個參數期望得到一個java.lang.Boolean類型的值。如果這個參數沒有被設置,那麼就允許相對重定向。
-
'http.protocol.max-redirects':定義了要遵循重定向的最大數量。這個重定向數字的限制意在防止由破碎的服務器端腳本引發的死循環。這個參數期望得到一個java.lang.Integer類型的值。如果這個參數沒有被設置,那麼只允許不多餘100次重定向。
-
'http.protocol.allow-circular-redirects':定義環形重定向(重定向到相同路徑)是否被允許。HTTP規範在環形重定向沒有足夠清晰的允許表述,因此這作爲可選的是可以開啓的。這個參數期望得到一個java.lang.Boolean類型的值。如果這個參數沒有被設置,那麼環形重定向就不允許。
-
'http.connection-manager.factory-class-name':定義了默認的ClientConnectionManager實現的類型。這個參數期望得到一個java.lang.String類型的值。如果這個參數沒有被設置,對於每個默認的將使用SingleClientConnManager。
-
'http.virtual-host':定義了在頭部信息Host中使用的虛擬主機名稱,來代替物理主機名稱。這個參數期望得到一個HttpHost類型的值。如果這個參數沒有被設置,那麼將會使用目標主機的名稱或IP地址。
-
'http.default-headers':定義了每次請求默認發送的頭部信息。這個參數期望得到一個包含Header對象的java.util.Collection類型值。
-
'http.default-host':定義了默認主機。如果目標主機沒有在請求URI(相對URI)中明確指定,那麼就使用默認值。這個參數期望得到一個HttpHost類型的值。
-
用法
HttpClient client = new HttpClient();
GetMethod page = new GetMethod("http://.....");
page.getParams().setParameter("http.protocol.max-redirects", "110");