0

Я пытался выяснить, как читать HttpURLConnection. В соответствии с этим примером: http://www.vogella.com/tutorials/AndroidNetworking/article.html, следующий код должен работать. Однако readStream никогда не срабатывает, и я не регистрирую никаких строк.Чтение HttpURLConnection

Я получаю, что InputStream передается через буфер и все, но для меня логика ломается в методе readStream, а затем в основном пустая строка «строка» и оператор while. Что именно происходит там/должно произойти там, и как я смогу это исправить? Кроме того, почему мне нужно создать URL-адрес в инструкции Try? Он возвращает необработанное исключение; java.net.MalformedURLException.

Заранее благодарен!

static String SendURL(){ 
    try { 
     URL url = new URL("http://www.google.com/"); 
     HttpURLConnection con = (HttpURLConnection) url.openConnection(); 
      readStream (con.getInputStream()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

    return ("Done"); 

} 

static void readStream(InputStream in) { 

    BufferedReader reader = null; 

    try { 
     reader = new BufferedReader(new InputStreamReader(in)); 
     String line = ""; 
     while ((line = reader.readLine()) != null) { 
      Log.i("Tag", line); 
     } 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } finally { 
     if (reader != null) { 
      try { 
       reader.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 
} 
+1

Посмотрите на [DavidWebb] (http://hgoebl.github.io/DavidWebb/#background). Там вы можете найти библиотеку абстракции для «HttpURLConnection» и список альтернатив. 'HttpURLConnection' слишком громоздко для использования, просто найдите SO для него, и вы увидите. – hgoebl

+0

Это выглядит очень многообещающе, сегодня вечером я расскажу ему об этом и сообщит об этом. Благодаря! – ThomQ

ответ

0

Есть куча вещей неправильно с кодом, я разместил в этом вопросе. Вот рабочий пример:

public class GooglePlaces extends AsyncTask { 

public InputStream inputStream; 


    public GooglePlaces(Context context) { 

     String url = "https://www.google.com"; 


     try { 
      HttpRequest httpRequest = requestFactory.buildGetRequest(new GenericUrl(url)); 
      HttpResponse httpResponse = httpRequest.execute(); 
      inputStream = httpResponse.getContent(); 

     } catch (IOException e) { 
      e.printStackTrace(); 
     } 


     BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); 
     StringBuilder builder = new StringBuilder(); 

     try { 
      for (String line = null; (line = bufferedReader.readLine()) != null;) { 
       builder.append(line).append("\n"); 
       Log.i("GooglePlacesTag", line); 
      } 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
    } 
} 
-1

Похоже, вы не подключаете ваш HTTPUrlClient попробовать con.connect()