zoukankan      html  css  js  c++  java
  • java.net.URISyntaxException的解决办法

    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
    感谢作者
  • 相关阅读:
    pwndbg + gdb8.2 + kali (2018-10-09)爬坑
    关于EOF
    ARM的PC和LR寄存器
    存档,IE漏洞,一直不会分析
    QQProtect.sys漏洞真有意思
    问题
    gapz注入代码
    Spring JdbcTemplate批量操作数据库
    消息中间件MQ基础理论知识
    Spring4.3.1 JDBCTemplate操作数据库
  • 原文地址:https://www.cnblogs.com/panxuejun/p/7623840.html
Copyright © 2011-2022 走看看