如何编码url以防止url中出现非法字符

时间:2013-11-14 08:46:33

标签: android http url

我必须点击urlhttp://maps.googleapis.com/maps/api/distancematrix/json?origins=0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0&destinations=19.0,72.0&mode=driving&sensor=false

我得到以下错误:

11-14 14:14:21.154: E/AndroidRuntime(2813): Caused by: java.lang.IllegalArgumentException: Illegal character in query at index 71: http://maps.googleapis.com/maps/api/distancematrix/json?origins=0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0&destinations=19.0,72.0&mode=driving&sensor=false

我也试过URLencodedUtils.format(),但我收到同样的错误。

解?

1 个答案:

答案 0 :(得分:4)

尝试

String query = URLEncoder.encode("origins=0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0|0.0,0.0&destinations=19.0,72.0&mode=driving&sensor=false", "utf-8");
String url = "http://maps.googleapis.com/maps/api/distancematrix/json?" + query;