Строка URL на HttpURLConnection - PullRequest
       4

Строка URL на HttpURLConnection

3 голосов
/ 15 февраля 2012

Рассмотрите следующий код для приложения для 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 имеют символы Юникода, служба матрицы расстояний Google не работает (статус возвращается как NOT_FOUND).Но если я использую строки на сайте карты Google в веб-браузере, это дает хороший результат.Я пытался использовать также URLEncoder, но у меня это тоже не получается.

Есть ли у вас какие-либо предложения?

1 Ответ

3 голосов
/ 15 февраля 2012

Вы должны использовать URLEncoder.encode ,

пример

urlString.append(URLEncoder.encode(dest, "utf-8"));

edit: не забывайте, что вы должны использовать его только для параметров, а не для целых URL.

...