java.net.URISyntaxException: Illegal character in scheme name at index 0:

来源:互联网 发布:淘宝开店电脑认证入口 编辑:程序博客网 时间:2024/06/05 00:59

使用HttpClient时,遇到一个问题:

[java] view plain copy
  1. java.net.URISyntaxException:  Illegal character in scheme name at index 0:  

原始写法:

[java] view plain copy
  1. /* 实例化一个HttpClient客户端 */  
  2.         /*HttpClient client = new DefaultHttpClient();   
  3.          HttpGet getHttp = new HttpGet(url); */  


原因:


查找了一些网上资料,说地址中涉及了特殊字符,如‘|’‘&’等。所以不能直接用String代替URI来访问。必须采用%0xXX方式来替代特殊字符。但这种办法不直观。所以只能先把String转成URL,再能过URL生成URI的方法来解决问题。代码如下



解决办法:

[java] view plain copy
  1. HttpClient client = new DefaultHttpClient();   
  2.         HttpGet getHttp = null;  
  3.   
  4.         try{  
  5.             URL url1 = new URL(url);   
  6.             URI uri = new URI(url1.getProtocol(), url1.getHost(), url1.getPath(), url1.getQuery(), null);   
  7.             getHttp = new HttpGet(uri);  
  8.         }catch(Exception e){  
  9.             e.printStackTrace();  
  10.         }  
原地址:http://blog.csdn.net/xb12369/article/details/46625503
阅读全文
0 0
原创粉丝点击