首頁 >Java >java教程 >如何在沒有 Java 執行時間識別碼的情況下為 Java 中的 URLConnections 設定自訂使用者代理程式?

如何在沒有 Java 執行時間識別碼的情況下為 Java 中的 URLConnections 設定自訂使用者代理程式?

Susan Sarandon
Susan Sarandon原創
2024-11-17 13:12:02205瀏覽

How to Set a Custom User Agent for URLConnections in Java without the Java Runtime Identifier?

在Java 中為URLConnections 自訂使用者代理

在Java 中使用URLConnection 擷取Web 內容時,通常需要設定自訂使用者代理程式準確的網站抓取和用戶模擬。但是,預設的 Java 運行時將其自己的標識符附加到用戶代理字串,這在某些情況下可能並不理想。

查詢

Java 開發人員尋求協助設定不含執行階段附加的「Java/1.5.0_19」字尾的使用者代理程式。使用者提供了一個程式碼片段,說明他們如何嘗試使用 setRequestProperty() 設定使用者代理程式。

解決方案

幸運的是,在Java 1.6.30 及更高版本中,透過setRequestProperty("User-Agent", "") 設定使用者代理可以完美地工作,無需添加任何額外的Java 運行時資訊。為了示範這一點,開發人員使用 netcat 偵聽傳入的 HTTP 請求,並觀察到自訂使用者代理程式已成功傳送,沒有 Java 後綴。

完整實作

import java.io.IOException;
import java.net.URL;
import java.net.URLConnection;

public class CustomUserAgent {

    public static void main(String[] args) throws IOException {
        URL url = new URL("http://localhost:8080/foobar");
        URLConnection hc = url.openConnection();
        hc.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");

        System.out.println(hc.getContentType());
    }

}

透過利用這種方法,開發人員可以有效地在Java 中為其URLConnections 設定使用者代理,而無需任何不需要的Java 特定添加,從而確保其Web 抓取或其他通訊任務達到所需的行為。

以上是如何在沒有 Java 執行時間識別碼的情況下為 Java 中的 URLConnections 設定自訂使用者代理程式?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn