0

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 =アフリカ&緯度=16.776767&経度=-3.006361&private= {"タグ":"テスト"}

ブラウザで同じ URL を呼び出すと、機能します。どんな助けでも感謝します!

4

3 に答える 3

4

最初に URL をエンコードし、パラメーターの部分のみをエンコードします。

 URLEncoder.encode("key=xxxx&type=Timbuktu&description=Africa&latitude=16.776767&longitude=-3.006361&private={\"tag\":\"test\"}", "UTF-8")
于 2012-11-23T12:23:47.657 に答える
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;
于 2012-11-23T12:23:35.870 に答える
1

ブラウザはインテリジェントで、URLをUTF-8でエンコードします。クライアント側でもそうすべきだと思います。

URLEncoder.encode(url, "UTF-8");
于 2012-11-23T12:23:53.190 に答える