」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何在沒有 Java 執行時間識別碼的情況下為 Java 中的 URLConnections 設定自訂使用者代理程式?

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

發佈於2024-12-22
瀏覽:469

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 抓取或其他通訊任務達到所需的行為。

最新教學 更多>
  • 如何在 React 中選擇 DOM 元素:`document.getElementById()` 的替代方案?
    如何在 React 中選擇 DOM 元素:`document.getElementById()` 的替代方案?
    如何在 React 中選擇 DOM 元素? React 中 document.getElementById() 的等價物是什麼在 React 中,與使用普通 JavaScript 不同,直接存取 DOM 元素是不同的。 React 使用虛擬 DOM 來有效地更新真實 DOM,這使得它與普通 Java...
    程式設計 發佈於2024-12-22
  • 如何並行化 npm 腳本以加快開發速度?
    如何並行化 npm 腳本以加快開發速度?
    並行執行 npm 腳本在套件開發中,同時執行多個依賴腳本通常是必要的。為了緩解 npm 預設行為帶來的順序執行問題,出現了一個強大的解決方案:並發。 並發執行使用戶能夠並行運行多個 npm 腳本,確保並發操作,同時保留輸出可見性。要利用此功能,請按照下列步驟操作:同時安裝:利用您的首選終端,執行以下...
    程式設計 發佈於2024-12-22
  • 在 Go 中如何可靠地比較函數指標是否相等?
    在 Go 中如何可靠地比較函數指標是否相等?
    檢測Go 中函數的指標相等性每週傳統上,比較Go 中的兩個非零函數指標涉及使用== 或!=運算符。然而,根據最近的變化,這種方法現在會導致錯誤。 更改背後的基本原則函數指標相等比較的消除源自於相等與同一的概念。在 Go 中,== 和 != 運算子評估值的等價性,而不是同一性。這種區別旨在防止這些概念...
    程式設計 發佈於2024-12-22
  • 如何在CSS中選擇具有多個屬性的元素?
    如何在CSS中選擇具有多個屬性的元素?
    如何在 CSS 中指定多個屬性選擇器在 CSS 中,可以根據多個屬性選擇元素。當您想要使用條件組合定位特定元素時,這會很有用。 語法:要選擇與多個屬性值相符的元素,請使用下列語法:[attribute1=value1] [attribute2=value2]例如,選擇具有屬性的輸入元素name=&q...
    程式設計 發佈於2024-12-22
  • Go方法中`func`後面的括號表示什麼?
    Go方法中`func`後面的括號表示什麼?
    理解 Go 方法中 func 之後的括號在 Go 中,你可能會遇到 func 關鍵字後面的括號。這些表示方法,而不是函數。我們透過一個具體的例子來理解這個特性:func (v Version) MarshalJSON() ([]byte, error) { return json.Marshal...
    程式設計 發佈於2024-12-22
  • 如何讓我的 Go 程式無限期運行?
    如何讓我的 Go 程式無限期運行?
    在 Go 程序中維護執行在 Go 中,主 Goroutine 作為程序的入口點。然而,一旦它終止,整個過程也會終止。這對設計為無限期運行的應用程式提出了挑戰。 傳統方法傳統上,程式透過以下方式維持主要活動狀態:import "fmt" func main() { go for...
    程式設計 發佈於2024-12-22
  • Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta 中的列偏移發生了什麼事?
    Bootstrap 4 Beta:列偏移的刪除和恢復Bootstrap 4 在其Beta 1 版本中引入了重大更改柱子偏移了。然而,隨著 Beta 2 的後續發布,這些變化已經逆轉。 從 offset-md-* 到 ml-auto在 Bootstrap 4 Beta 1 中, offset-md-*...
    程式設計 發佈於2024-12-22
  • 如何使用 jQuery 建立動態顏色漸層?
    如何使用 jQuery 建立動態顏色漸層?
    使用jQuery 實現動態色彩淡入淡出:增強使用者焦點的指南動畫文字可以有效地吸引使用者註意力,但是淡入背景怎麼樣?顏色來突出顯示重要訊息?使用 jQuery,這項任務變得毫不費力。 使用 jQueryUI 淡入/淡出背景顏色要使用 jQuery 專門為元素的背景顏色設定動畫,您需要包含 jQuer...
    程式設計 發佈於2024-12-22
  • 儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    儘管程式碼有效,為什麼 POST 請求無法擷取 PHP 中的輸入?
    解決PHP 中的POST 請求故障在提供的程式碼片段中:action=''而非:action="<?php echo $_SERVER['PHP_SELF'];?>";?>"檢查$_POST陣列:表單提交後使用 var_dump 檢查 $_POST 陣列的內...
    程式設計 發佈於2024-12-22
  • 為什麼我的 Facebook Graph API 從 v2.2 遷移到 v2.3 後失敗?
    為什麼我的 Facebook Graph API 從 v2.2 遷移到 v2.3 後失敗?
    從v2.2 遷移到v2.3 後Facebook Graph API 無法運作升級到Facebook Graph API v2.3 後,開發人員遇到了某些API 請求無法傳回資料的問題。本文探討了遇到的具體問題,並根據最新版本 SDK 中引入的變更提供了解決方案。 問題描述開發者報告 API 請求之前...
    程式設計 發佈於2024-12-22
  • JavaScript 如何在後台工作:了解其單線程性質和非同步操作
    JavaScript 如何在後台工作:了解其單線程性質和非同步操作
    JavaScript 是網路的支柱,為數十億網站和應用程式提供動態用戶端功能。但您有沒有想過 JavaScript 是如何在後台發揮魔力的?在這篇文章中,我們將深入研究 JavaScript 單線程本質的內部工作原理並探索非同步程式設計的概念。 單線程是什麼意思? 當我們說 Jav...
    程式設計 發佈於2024-12-22
  • 如何輕鬆備份和還原所有 MySQL 資料庫?
    如何輕鬆備份和還原所有 MySQL 資料庫?
    輕鬆備份和還原 MySQL 資料庫:綜合指南管理大量 MySQL 資料庫可能令人望而生畏。為了安全的資料保護,建立定期備份至關重要。本綜合指南將提供如何輕鬆同時匯出和匯入所有 MySQL 資料庫的逐步說明。 匯出多個資料庫利用 mysqldump 實用程式是匯出多個資料庫的首選方法立刻。使用命令列,...
    程式設計 發佈於2024-12-22
  • 如何防止Python實例之間的類別資料共享?
    如何防止Python實例之間的類別資料共享?
    如何隔離各個實例的類別資料為了避免在多個實例之間共享類別資料並確保每個實例維護自己的數據,請依照下列步驟操作:在建構子中宣告變數(__init__ Method)不要在任何方法之外聲明類別級變量,而是在 init 建構函數方法中定義它們。例如:class a: def __init__(se...
    程式設計 發佈於2024-12-22
  • 如何從 Windows 上的 C++ 控制台應用程式列印 UTF-8?
    如何從 Windows 上的 C++ 控制台應用程式列印 UTF-8?
    在Windows 上從C 控制台應用程式列印UTF-8使用Visual Studio 2008 在英文Windows 系統上開發C 主機應用程式時,使用者可能會在顯示UTF- 時遇到挑戰8 透過cout或wcout正確編碼內容。以下是解決此問題的方法:解決方案:解決方案涉及將控制台的輸出代碼頁設定為...
    程式設計 發佈於2024-12-22
  • 在 Go 中使用 WebSocket 進行即時通信
    在 Go 中使用 WebSocket 進行即時通信
    构建需要实时更新的应用程序(例如聊天应用程序、实时通知或协作工具)需要一种比传统 HTTP 更快、更具交互性的通信方法。这就是 WebSockets 发挥作用的地方!今天,我们将探讨如何在 Go 中使用 WebSocket,以便您可以向应用程序添加实时功能。 在这篇文章中,我们将介绍: WebSoc...
    程式設計 發佈於2024-12-22

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3