首頁 > Java > java教程 > 如何使用 java.net.URI 類別在 Java 中正確編碼 HTTP URL?

如何使用 java.net.URI 類別在 Java 中正確編碼 HTTP URL?

Linda Hamilton
發布: 2024-12-18 12:42:18
原創
220 人瀏覽過

How to Properly Encode HTTP URLs in Java Using the java.net.URI Class?

如何在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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板