java.net.URISyntaxException的解决办法

近日在用HttpClient访问抓取汇率时,为了省力,直接采用

String url = "http://api.liqwei.com/currency/?exchange=usd|cny&count=1";
HttpClient client = new DefaultHttpClient();
HttpGet httpget = new HttpGet(url);
HttpResponse response = client.execute(httpget);

以前用这种方法都没有问题,但这次却报如下错误

java.net.URISyntaxException: Illegal character in query at index 44

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

URL url = new URL(strUrl);
URI uri = new URI(url.getProtocol(), url.getHost(), url.getPath(), url.getQuery(), null);
HttpClient client = new DefaultHttpClient();
HttpGet httpget = new HttpGet(uri); 本文转自http://qsfwy.iteye.com/blog/1926302
感谢作者

最新文章

  1. Asp.net有关访问页面权限的限制和错误页面配置
  2. WPF-流文档元素
  3. 字符串截取函数substr和substring的不同及其相关说明
  4. PHP 图片文件上传代码
  5. LoadRunner 学习笔记(1)性能测试常见术语
  6. ubuntu网络连接图标不显示
  7. ubuntu-15.04 下编译 ijkplayer 安卓版
  8. sizeof,终极无惑(上)
  9. Hibernate(五)——经典解析一对一关联映射
  10. 深入理解Android中ViewGroup
  11. CSharp设计模式读书笔记(17):迭代器模式(学习难度:★★★☆☆,使用频率:★★★★★)
  12. 容器与Docker简介(三)Docker相关术语——微软微服务电子书翻译系列
  13. R语言S3类的理解与构建
  14. ykit入门
  15. rabbitMQ学习2-Python与rabbitmq
  16. python写商品管理练习
  17. 006 python操作符
  18. pypthon 3.6.5 绘制柱状图中文乱码的基本、根本、高效之解决方案~
  19. robotframework 运行集合
  20. Ruby:Open-uri和Net::HTTP的不同

热门文章

  1. Web框架_MVC vs MVT
  2. 约瑟夫环(java)
  3. JVM的异常体系
  4. python基础一 day9 函数升阶(2)
  5. Chrome浏览器安装React developer tools
  6. CF666E Forensic Examination SAM+倍增,线段树和并
  7. int (*a)[10]和int *a[10]的区别
  8. 客户端和服务器最多能发送和接收多少TCP连接数?
  9. MySQL多版本并发控制(MVCC)
  10. (5) openssl speed(测试算法性能)和openssl rand(生成随机数)