首页 > Java > java教程 > 如何使用 java.net.URI 类在 Java 中正确编码 HTTP URL?

如何使用 java.net.URI 类在 Java 中正确编码 HTTP URL?

Linda Hamilton
发布: 2024-12-18 12:42:18
原创
219 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板