先上代码:

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 

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐