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