您现在的位置是:网站首页>>信息浏览 文章详情

Caused by: java.net.URISyntaxException: Illegal character异常解决方法
2019-06-28 23:51 许多年以后 1104

如果直接在浏览器中输入带特殊字符的url是没有问题的,但是,如果通过httpclient这个客户端来请求带特殊字符的url时,例如空格等,这个时候,就会出现上面的异常,需要对这些特殊字符进行转义。目前有2种方案:

第一种:

先把String转成URL,再能过URL生成URI的方法来解决问题。

  1. URL url = new URL(strUrl);
  2. URI uri = new URI(url.getProtocol(), url.getHost(), url.getPath(), url.getQuery(), null);
  3. HttpClient client = new DefaultHttpClient();
  4. HttpGet httpget = new HttpGet(uri);

第二种:
对特殊字符进行转换:

字符 说明 ASCII码
+ URL 中+号表示空格 %2B
空格 URL中的空格可以用+号或者编码 %20
/ 分隔目录和子目录 %2F
? 分隔实际的URL和参数 %3F
% 指定特殊字符 %25
# 表示书签 %23
& URL 中指定的参数间的分隔符 %26
= URL 中指定参数的值 %3D
{ 左大括号 %7B
} 右大括号 %7D
引号 %22

我们只要替换字符串的字符变成ASCII码就行

赞 (163)
文章出处:书生个人博客          转载注明下哦!o(≧v≦)o~~

标签: javaundefined

相似文章:


随便说两句
请先登录
遵守国家法律法规,请勿回复无意义内容,请不要回复嵌套过多的楼层!