欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

java.lang.IllegalArgumentException: Illegal character in query at index

程序员文章站 2024-02-14 17:06:34
...

这个报错是我写HttpPost推送数据的时候出错的,一开始我也不知道是什么问题,后面去找了一下发现是发送请求的参数出问题了

请求:

http://xxxxxx/xxxxx?datas=[{"sn":"AABBCC2","time":"2021-05-11 13:10:01","status":"1,1,2","eDToday":"1.5","eDTotal":"7.9"}]

然后就报错

java.lang.IllegalArgumentException: Illegal character in query at index

这个报错是因为你的参数是跟着地址后面一起发送请求,而在地址上面不能有什么大括号,空格,引号等等…这些符号,一旦加上就会发生未知符号报错。

所以我们要进行转换用以下代码把你的未知符号转换一下

try {
	datas = URLEncoder.encode(json.getString("datas"), "UTF-8");
} catch (UnsupportedEncodingException  e) {
	e.printStackTrace();
	// TODO: handle exception
}

格式:URLEncoder.encode(字符串, “UTF-8”)

这样就ok了