解决异常 java.net.URISyntaxException: Illegal character in query at index

java.net.URISyntaxException 表示你在尝试创建一个 URI 对象时,传递了一个非法的 URI 字符串

这个异常通常是因为 URI 字符串中包含了不合法的字符,比如空格、特殊字符等。在 URI 中,某些字符是需要进行编码的,例如空格会被编码为 %20

要解决这个异常,亲测以下几个方法:

检查 URI 字符串 :仔细检查你传递给 new URI() 构造函数的字符串,确保其中不包含非法字符。

对 URI 进行编码 :如果 URI 字符串中包含了特殊字符或空格,你可以使用 Java 提供的 URLEncoder 类对它们进行编码,然后再传递给 new URI()

复制代码
String urlString = "https://example.com/page with space";
String encodedUrlString = URLEncoder.encode(urlString, "UTF-8");
URI uri = new URI(encodedUrlString);

使用 URL :如果你只需要对 URL 进行简单的操作,你可以考虑使用 URL 类,它对 URL 进行了更高层次的封装,并提供了一些方便的方法。

复制代码
URL url = new URL("https://example.com/page with space");
相关推荐
佳哥的技术分享7 分钟前
Function<T, R> 中 apply,compose, andThen 方法总结
java·学习·r语言
wangmengxxw10 分钟前
SpringAI-结构化输出API
java·人工智能·springai
0和1的舞者12 分钟前
基于Spring的论坛系统-前置知识
java·后端·spring·系统·开发·知识
咕噜企业分发小米12 分钟前
腾讯云和火山引擎在多云管理工具上如何实现成本优化?
java·腾讯云·火山引擎
爱编程的小庄15 分钟前
Rust初识
开发语言·rust
不平衡的叉叉树16 分钟前
从JDK 1.8到JDK 21:实用新特性
java
23124_8018 分钟前
热身签到-ctfshow
开发语言·python
鱼跃鹰飞19 分钟前
Leetcode1027:最长等差数列
java·数据结构·算法
小白学大数据29 分钟前
移动端Temu App数据抓包与商品爬取方案
开发语言·爬虫·python
吃吃喝喝小朋友32 分钟前
JavaScript文件的操作方法
开发语言·javascript·ecmascript