先上代码:
Properties pro = PropertyUtil.getPropertiesInfo("xxx.properties"); String url = pro.getProperty("xxxxxxx"); HttpPost httpPost = new HttpPost(url);
自己在本地开发的时候,一直没有问题,上了测试环境后一直报错:
java.net.URISyntaxException: Illegal character in query at index 65
起初我在网上也查了一些这个问题,都说地址中涉及了特殊字符,如‘|’‘&’等。要通过new一个新的url的方式解决(具体不细说了,可自行搜索),我自己也按这种方式改了,
但在执行返回代码的时候报错:
Target host must not be null, or set in parameters
HttpResponse response = client.execute(httpPost);
解决先前的问题,又遇到了新的问题,就想会不会解决问题的方式不对,果不其然,打开配置文件xxx.properties,详细查看一番,发现在配置的地址最后面多了一个空格,
删除后,解决。
最后,列几个特殊字符及十六进制值
特殊含义 十六进制值
1.+ 表示空格(在 URL 中不能使用空格) %20
2./ 分隔目录和子目录 %2F
3.? 分隔实际的 URL 和参数 %3F
4.% 指定特殊字符 %25
5.# 表示书签 %23
6.& URL 中指定的参数间的分隔符 %26