使用Android执行RESTful URL

时间:2012-11-23 12:20:05

标签: java android url rest restful-url

我正在尝试使用Android来提取以下REST网址但我收到以下错误,

  

11-23 12:12:32.749:E / AndroidRuntime(709):引起:   java.lang.IllegalArgumentException:查询中的非法字符   指数121:   http://xxxxxxxxxxxxxxxxx.com/add.php?key=xxxxxxxxxxxx&type=Timbuktu&description=Africa&latitude=16.776767&longitude=-3.006361&private= { “标记”: “测试”}

当我在浏览器中调用相同的URL时,它可以工作。任何帮助都会得到证实!

3 个答案:

答案 0 :(得分:4)

首先对您的网址进行编码,仅对参与者进行编码..

 URLEncoder.encode("key=xxxx&type=Timbuktu&description=Africa&latitude=16.776767&longitude=-3.006361&private={\"tag\":\"test\"}", "UTF-8")

答案 1 :(得分:2)

您需要对网址的参数进行网址编码,如下所示:

String privateParamValue = URLEncoder.encode("{\"tag\":\"test\"}", "UTF-8");
String url = "http://xxxx.com/add.php?key=xxxx&type=Timbuktu&description=Africa&latitude=16.776767&longitude=-3.006361&private=" + privateParamValue;

答案 2 :(得分:1)

浏览器是智能的,并以UTF-8编码URL。我想你也应该在客户端做到这一点。

URLEncoder.encode(url, "UTF-8");