根据keyword向服务器端api查询数据时出现此错误:

java.lang.IllegalArgumentException: Illegal character in query at index 89:http://ask.c3dn.net?k=如何 解决

Url参数中有特殊字符串,上面的参数“k=如何 解决”里有空格;

解决方案1

url= url.replaceAll(" ", "%20");

其它对应字符:

?   :  %3F
&   :  %26
|   :  4
十六进制值
1.  +   URL 中+号表示空格 %2B
2.  空格  URL中的空格可以用+号或者编码    %20
3.  /   分隔目录和子目录    %2F
4.  ?   分隔实际的 URL 和参数   %3F
5.  %   指定特殊字符  %25
6.  #   表示书签    %23
7.  &   URL 中指定的参数间的分隔符 %26
8.  =   URL 中指定参数的值 %3D

解决方案2

服务端对客户端传过来的参数进行编码:

URLEncoder.encode(keyword)

http://jilinmo.diandian.com/post/2012-07-27/40031012652
http://blog.csdn.net/jodan179/article/details/8129352
http://stackoverflow.com/questions/5295347/android-httpget-issue

问题描述 根据keyword向服务器端api查询数据时出现此错误: java.lang.IllegalArgumentException: Illegal character in query at index 89:http://ask.c3dn.net?k=如何 解决原因 Url参数中有特殊字符串,上面的参数“k=如何 解决”里有空格;解决方案1 客户端: u
java . lan g. IllegalArgumentException : from Index (2) > to Index (1) at java .util.ArrayList.subListRangeCheck(ArrayList. java :1006) at java .util.ArrayList.subList(ArrayList. java :996) at com.guardlbt.job.FinalistsTask.finalistsTask(FinalistsTask. java :174)
今天在写智能机器人问答实现的时候遇到了一个 问题 ,就是我发送消息不能输入空格 给我报了一个错误 java . lan g. IllegalArgumentException : Illegal character in query at index 说是我输入的数据有 问题 , 在这里说明因为在我们使用的是get方式传输数据,它会在 url 后面跟上你所带的参数,所以就存在 url 的组成数据 问题 url 转换 问题
这个错误通常是由于您在程序中使用了非法字符导致的。 这个错误的具体原因是,在您的程序中使用了不合法的字符,导致 Java java .net.URISyntaxException 异常被抛出。 为了 解决 这个 问题 ,您需要检查您的程序代码,确保没有使用不合法的字符。如果找到了不合法的字符,您需要将它替换为合法的字符。 例如,如果您在程序中使用了一个非法的字符作为 URL 中的查询参数,您可能会看到类...
学习spring依赖注入的时候碰到这个坑,折腾了许久,记录一下以防其他小伙伴入坑! 该异常主要原因是因为JDK与Spring版本不一致。要么更换jdk,要么重新下载符合jdk的springjar包 我本地装了两个JDK版本,一个1.8,一个1.7,原本以为只要修改一...
Exception in thread "main" java . lan g. IllegalArgumentException : Illegal character in path at index 64: https://xxxxx/sensitiveWord/replaceSensitiveWord at java .net.URI.create(URI. java :852) at org.apache.http.client.methods.HttpPost.<init>(HttpP
这个错误是由于在 URL 中的方案(scheme)名称中包含非法字符导致的。 URL 的方案通常是指协议,例如 HTTP、HTTPS、FTP 等。 在 Java 中, URL 的方案名称必须满足一定的规范,其中包括: - 方案名称必须以字母开头 - 方案名称只能包含字母、数字和特定的符号(如 "+"、"-"、".") 如果方案名称的第一个字符不符合规范,就会抛出 IllegalArgumentException 异常,并指出非法字符的索引位置。 要 解决 这个 问题 ,你可以检查你使用的 URL 是否正确,并确保方案名称符合规范。请确保方案名称以字母开头,并只包含合法的字符。