2015-11-07 16 views
6

Przygotowałem czytnik RSS, który działa tak jak jest, ale chcę skonfigurować połączenie z adresem URL RSS przy użyciu metody HttpUrlConnection. Kiedy próbowałem go, program zamknięty po kliknięciu przycisku Czytaj RSS:Używanie HttpUrlconnection w Rss Reader powoduje zawieszenie Androida

private class getRssFeedTask extends AsyncTask<String, Void, String> { 
    @Override 
    protected String doInBackground(String... params) { 
     try { 
      URL rssUrl = new URL(params[0]); 
      HttpURLConnection urlIn = (HttpURLConnection) rssUrl.openConnection(); 
      InputStream in = new BufferedInputStream(urlIn.getInputStream()); 
      String line; 
      feed = ""; 
      while ((line = in.toString()) != null) { 
       feed += line; 
      } 
      in.close(); 
      return feed; 
     } catch (MalformedURLException ue) { 
      System.out.println("Malformed URL"); 
     } catch (IOException ioe) { 
      System.out.println("The URL is unreachable"); 
     } 
     return null; 
    } 

} 

Jest to metoda połączenia siedzę za pomocą którego działa:

private class getRssFeedTask extends AsyncTask<String, Void, String> { 
    @Override 
    protected String doInBackground(String... params) { 
     try { 
      URL rssUrl = new URL(params[0]); 
      BufferedReader in = new BufferedReader(new InputStreamReader(rssUrl.openStream())); 
      String line; 
      feed = ""; 
      while ((line = in.readLine()) != null) { 
       feed += line; 
      } 
      in.close(); 
      return feed; 
     } catch (MalformedURLException ue) { 
      System.out.println("Malformed URL"); 
     } catch (IOException ioe) { 
      System.out.println("The URL is unreachable"); 
     } 
     return null; 
    } 

} 

dzięki za pomoc można zapewnić!

Odpowiedz

4

To, co musisz zrobić, to umieścić w sznurku, który nazwałam rezultatem. Załączam mój kod do doInBackground. Po dodaniu go do napisu ma miejsce do przechowywania pliku danych. I działa dla czytnika rss.

public String doInBackground(String... urls){ 

     String result = ""; 
     try{ 
      URL url = new URL(urls[0]); 
      HttpURLConnection conn = (HttpURLConnection) url.openConnection(); 
      InputStream in = conn.getInputStream(); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(in)); 
      String line = ""; 

      while((line = reader.readLine()) != null){ 
       result = result + line; 
      } 

      conn.disconnect(); 
     } 
     catch(Exception e){ 
      Log.e("ERROR Fetching ", e.toString()); 
     } 
     return result; 
    } 
Powiązane problemy