【问题标题】:Executing RESTful URL with Android使用 Android 执行 RESTful URL
【发布时间】:2012-11-23 12:20:05
【问题描述】:

我正在尝试使用 Android 执行以下 REST url,但出现以下错误,

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={"tag":"test"}

当我在浏览器中调用相同的 URL 时,它可以工作。任何帮助将不胜感激!

【问题讨论】:

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

标签: java android url rest restful-url


【解决方案1】:

首先编码您的网址,仅参数部分..

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

【讨论】:

  • 嘿,我现在只是在尝试这个,但不断从服务器返回 {"status":"error","message":"Missing type parameter in http request"}。跨度>
【解决方案2】:

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

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;

【讨论】:

    【解决方案3】:

    浏览器是智能的,并以 UTF-8 对 URL 进行编码。我认为你也应该在客户端这样做。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多