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