解决异常 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");
相关推荐
Propeller1 分钟前
【Android】模板化解决复杂场景的滑动冲突问题
android·java
ivy159868377153 分钟前
JM20329是一款高性能、低功耗的USB桥接芯片,实现串行接口(如SATA、IDE)与USB接口之间的数据转换。
c语言·开发语言·ide·嵌入式硬件·eureka·音视频·视频编解码
渡我白衣5 分钟前
深入 Linux 内核启动:从按下电源到用户登录的全景解剖
java·linux·运维·服务器·开发语言·c++·人工智能
七夜zippoe6 分钟前
Java 9+模块化系统(JPMS)详解:设计与迁移实践
java·开发语言·maven·模块化·jmm
三川6989 分钟前
1. 网络编程基础
开发语言·网络
百***374815 分钟前
PHP进阶-在Ubuntu上搭建LAMP环境教程
开发语言·ubuntu·php
techzhi16 分钟前
Intellij idea 注释模版
java·python·intellij-idea
bagadesu17 分钟前
MySQL----case的用法
java·后端
what_201821 分钟前
idea启动项目配置环境变量(nacos 命名空间)
java·开发语言
Slow菜鸟23 分钟前
Java 开发环境安装指南(三) | Maven 安装
java