2013-06-14 2 views
0

Почему следующий код возвращает мне только «{i.e начало строки JSON, а не весь JSON? Когда я набираю URL-адрес в браузере, он возвращает мне полный JSON. Я пытался сбросить ответ, но ничего не работает, может кто-нибудь объяснить, почему?Google places and autocomplete Edittext

HttpClient httpclient = new DefaultHttpClient(); 
HttpGet httpget = new HttpGet("https://maps.googleapis.com/maps/api/place/autocomplete/json?input=Nasik%20&types=geocode&language=en&sensor=true&key=API-KEY"); 
HttpResponse response = httpclient.execute(httpget); 
InputStream is = response.getEntity().getContent(); 
BufferedReader br = new BufferedReader(new InputStreamReader(is)); 
Toast.makeText(this, br.readLine(), Toast.LENGTH_LONG).show();  

ответ

1

Попробуйте этот путь.

try { 
     BufferedReader reader = new BufferedReader(new InputStreamReader(
       is, "iso-8859-1"), 8); 
     StringBuilder sb = new StringBuilder(); 
     String line = null; 
     while ((line = reader.readLine()) != null) { 
      sb.append(line + "\n"); 
     } 
     is.close(); 
     Log.d("Json Output",sb.toString()); 
    } catch (Exception e) { 
     Log.e("Buffer Error", "Error converting result " + e.toString()); 
    } 

Update:

Вы должны прочитать каждую строку, в настоящее время вы пытаетесь прочитать первую строку.

1

Вы используете функцию br.readline(). Поскольку имя функции предполагает, что она читает только одну строку. Для его полного использования используйте что-то вроде

StringBuilder sb = new StringBuilder(); 
String line = null; 
while ((line = br.readLine()) != null) { 
    sb.append(line + "\n"); 
} 
Toast.makeText(this, sb.toString(), Toast.LENGTH_LONG).show();