首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Web前端 >

java.net.URISyntaxException的解决方法

2013-08-22 
java.net.URISyntaxException的解决办法java.net.URISyntaxException的解决办法近日在用HttpClient访问抓

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);

热点排行