如何在Java 中正確編碼HTTP URL
在Java 中使用URL 時,正確編碼以確保它們能夠被正確編碼是至關重要的。由伺服器準確解釋。雖然 java.net.URLEncoder 可以協助 HTML 表單編碼,但在 HTTP URL 編碼方面卻有所不足。本文探討如何使用 java.net.URI 類別有效地編碼 HTTP URL。
java.net.URI 類別提供了一種操作和編碼 URI 和 URL 元件的方法。 URI 的單參數建構函數不會轉義非法字符,導致出現問題中所述的錯誤。為了解決這個問題,您應該使用帶有多個參數的構造函數,例如:
URI uri = new URI("http", "search.barnesandnoble.com", "/booksearch/first book.pdf", null); URL url = uri.toURL();
這種方法有效地轉義非法字符,為您提供所需的結果:
http://search.barnesandnoble.com/booksearch/first%20book.pdf
它需要注意的是,這種編碼僅影響非法字符,而不影響非ASCII 字符。對於僅包含US-ASCII 字元的字串,您可以使用toASCIIString 方法:
URI uri = new URI("http", "search.barnesandnoble.com", "/booksearch/é", null); String request = uri.toASCIIString();
這對於包含非ASCII 字元的查詢的URL 特別有用:
URI uri = new URI("http", "www.google.com", "/ig/api", "weather=São Paulo", null); String request = uri.toASCIIString();
透過利用java.net.URI 類,您可以有效地對HTTP URL 進行編碼,確保伺服器正確處理它們並實現準確的資料檢索。
以上是如何使用 java.net.URI 類別在 Java 中正確編碼 HTTP URL?的詳細內容。更多資訊請關注PHP中文網其他相關文章!