首頁 >Java >java教程 >如何在 Java 中正確編碼 HTTP URL?

如何在 Java 中正確編碼 HTTP URL?

Susan Sarandon
Susan Sarandon原創
2024-12-18 19:18:12849瀏覽

How to Properly Encode HTTP URLs in Java?

在Java 中編碼HTTP URL 位址

在Java 中,java.net.URLEncoder 實用程式通常用於對HTML 表單資料進行編碼。但是,由於其在處理某些字元方面的限制,它可能不適合編碼 HTTP URL。

正確編碼 HTTP URL 的一種方法是利用 java.net.URI 類別。根據URL 文檔,「URI 在某些情況下確實會對其組件字段執行轉義。」

要使用URI 編碼HTTP URL,請建立一個具有多個參數的URI 物件:

URI uri = new URI(
    "http", 
    "search.barnesandnoble.com", 
    "/booksearch/first book.pdf",
    null);

產生的URI 將轉義非法字符,從而提供預期的行為。

http://search.barnesandnoble.com/booksearch/first%20book.pdf

請注意,URI 僅轉義非法字元。對於非ASCII 字符,可以使用toASCIIString 方法將URI 轉換為僅包含US-ASCII 字符的字串:

String request = uri.toASCIIString();

對於帶有查詢的URL,使用URI 的5 參數構造函數來指定URL 路徑和查詢字串:

URI uri = new URI(
        "http", 
        "www.google.com", 
        "/ig/api",
        "weather=São Paulo",
        null);

這種方法為用Java 編碼HTTP URL提供了更強大、更全面的解決方案。

以上是如何在 Java 中正確編碼 HTTP URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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