找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 117|回复: 0

[博客归档]有关QueryParam 的奇葩异常 Illegal character in URL

[复制链接]

373

主题

55

回帖

1944

积分

管理员

积分
1944
发表于 2022-2-28 09:42:26 | 显示全部楼层 |阅读模式

前端调用短信批量发送接口返回报错信息
Illegal character in URL

第一时间去排查前端传递的参数,反复检查发现没有问题,经过后端源码才发现是下面这段代码出现问题

URLConnection conn = url.openConnection();conn.setRequestProperty("accept", "*/*");conn.setRequestProperty("connection", "Keep-Alive");conn.connect();BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream()))

这里的URL 是通过拼接参数的方式GET请求到上游短信平台,喵了下参数列表500多个,感觉是不是超出了GET请求参数的最大范围?

但是后面后知后觉,没理由报了这个错误

[http-nio-0.0.0.0-9090-exec-8] 2021-09-28 16:19:44,275 - Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exceptionjava.net.MalformedURLException: Illegal character in URLat sun.net.www.http.HttpClient.getURLFile(HttpClient.java:628)

后面去百度寻觅了下同病相怜的小伙伴,发现有同病相怜

https://blog.csdn.net/f1204270443/article/details/60963684


断点调试,的确发现,某个手机号后面多了一个换行


真相只有一个,数据问题,而这种数据问题其实是很有安全隐患的,因为末尾的换行,如果一些工具不支持图形化显示,根本不知道,而且通过SQL 语句 等号查询,也是查询不出来的


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Comsenz Inc.

GMT+8, 2024-9-20 10:38 , Processed in 0.030379 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表