GET请求URL含空格触发java.net.URISyntaxException非法字符错误求助
解决URL含空格导致的URISyntaxException异常
当执行以下GET请求时出现非法字符异常:
Get url baseurl + '/api/Search 1' When method GET Then print response
报错信息为:java.net.URISyntaxException: Illegal character,问题根源是URL中包含空格——空格属于URI规范里的非法字符,直接使用会触发异常。
解决方法
- 直接替换空格为URL编码值:把URL中的空格替换为
%20,修改后的请求URL应为:baseurl + '/api/Search%201' - 使用Java编码工具处理:如果路径中包含多个特殊字符,推荐用
URLEncoder对路径部分进行编码,示例代码:
注意:避免对整个baseurl进行编码,仅编码包含特殊字符的路径片段即可,防止破坏URL的合法结构。String rawPath = "/api/Search 1"; // 对路径进行UTF-8编码 String encodedPath = URLEncoder.encode(rawPath, StandardCharsets.UTF_8); String fullUrl = baseurl + encodedPath;
内容的提问来源于stack exchange,提问作者Suhas Kulkarni
相关产品推荐
相关产品推荐

