2015-11-07 17 views
6

askıda kalmasına neden oluyor. Birlikte çalıştığım bir RSS okuyucuyu bir araya getirdim ama HttpUrlConnection yöntemini kullanarak RSS URL'sine bağlantı kurmak istiyorum.Rss Reader'da HttpUrlconnection kullanımı Android'in

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; 
    } 

} 

Bu benim kullandığım sıkışmış am bağlantı yöntemi çalışır: Eğer sağlayabilir herhangi bir yardım için

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; 
    } 

} 

Teşekkür Denedim zaman Oku Rss düğmesine tıkladıktan sonra, programı kilitli!

cevap

4

Yapmanız gereken şey, sonuç olarak adlandırdığım bir dizeye yerleştirmektir. DoInBackground için kodumu ekledim. Bir dizeye ekleyerek, beslemeyi saklamak için bir yeri vardır. Ve rss okuyucu için çalışıyor.

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; 
    }