Android HttpURLConnection上的URL字符串
考虑一下android应用程序的以下代码Android HttpURLConnection上的URL字符串,android,unicode,httpurlconnection,Android,Unicode,Httpurlconnection,考虑一下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="); /
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)。但如果我在web浏览器中使用google地图站点中的字符串,它会返回良好的结果。我也尝试使用URLEncoder,但我也失败了
你有什么建议吗?你应该使用
示例
urlString.append(URLEncoder.encode(dest, "utf-8"));
编辑:别忘了你应该只对参数使用它,而不是整个url。我的问题是unicoded表情文字不能正确地进入服务器,这很有帮助。非常感谢。