考虑使用以下android应用程序代码;
private String GetDistance(String src, String dest) {
StringBuilder urlString = new StringBuilder();
urlString.append("http://maps.googleapis.com/maps/api/distancematrix/json?");
urlString.append("origins="); // **"ÇANKIRI,ÇERKEŞ,TURKEY"**
urlString.append(src);
urlString.append("&destinations="); // **"ANKARA,ALTINDAĞ,TURKEY"**
urlString.append(dest);
urlString.append("&mode=driving&sensor=false");
Log.d("xxx","URL="+urlString.toString());
// get the JSON And parse it to get the directions data.
HttpURLConnection urlConnection= null;
URL url = null;
//String urlStr = URLEncoder.encode(urlString.toString(), "utf-8");
//url = new URL(urlStr);
url = new URL(urlString.toString());
......
如果src和dest字符串具有Unicode字符,则Google距离矩阵服务将失败(状态返回为NOT_FOUND).但是,如果我在网络浏览器中使用Google地图站点中的字符串,它将返回良好的结果.我也尝试使用URLEncoder,但是我也失败了.
你有什么建议吗?
解决方法:
您应该使用URLEncoder.encode,
例
urlString.append(URLEncoder.encode(dest, "utf-8"));
编辑:别忘了您应该仅将其用于参数,而不是整个url.