首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

HttpClient 3.x 手動處理 302 重導向:關閉自動重導向並遞迴跟進 Location

     編輯:程式設計綜合問答

使用 Commons HttpClient 3.x 時,需手動處理重導向(自動重導向會陷入循環或失去 Cookie)。

核心代碼模式

GetMethod get = new GetMethod(url);
get.setFollowRedirects(false); // 關閉自動重導向
client.executeMethod(get);

Header loc = get.getResponseHeader("location");
if (loc != null) {
    String redirectUrl = loc.getValue();
    // 遞迴或迴圈呼叫 doRequest(redirectUrl, ...)
    // 注意攜帶原請求的 Cookie/Header
}
get.releaseConnection();

避免遞迴死循環

  • 設定最大重導向次數(如 10 次)。
  • 記錄已訪問 URL,偵測循環中斷。
  • 重導向時**保持 CookieStore**,確保登入態傳遞。

建議:專案若非維舊,升級至 **HttpClient 4.5+ / 5.x**,內建 `LaxRedirectStrategy`、`DefaultRedirectStrategy` 可配置,代碼更簡潔。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved