2017-01-02 3 views
0

Я пытаюсь читать rss-канал, но получаю ниже ошибку при попытке прочитать из BufferedReader.java.io.EOFException: n не найден, при чтении из BufferedReader

Error stack trace [screenshot]

Ниже приводится метод, который читает и преобразующие RSS Feed

private String downloadXML(String urlPath){ 
     StringBuilder xml = new StringBuilder(); 
     try { 
      URL url = new URL(urlPath); 
      HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 
      int responseCode = connection.getResponseCode(); 
      Log.d(TAG, "downloadXML: The response code was " + responseCode); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream())); 

      int charRead; 
      char [] bufferRead = new char[500]; 
      while (true){ 
       charRead = reader.read(bufferRead); 

       if(charRead<0){ 
        break; 
       } 
       if(charRead>0){ 
        xml.append(String.copyValueOf(bufferRead, 0, charRead)); 
       } 
      } 
      reader.close(); 

      return xml.toString(); 
     } 
     catch (MalformedURLException e){ 
      Log.e(TAG, "downloadXML: Invalid URL " + e.getMessage()); 
     } 
     catch (IOException e){ 
      Log.e(TAG, "downloadXML: IO exception " + e.getMessage()); 
      e.printStackTrace(); 
     } 
     catch (SecurityException e) { 
      Log.e(TAG, "downloadXML: SecurityEception " + e.getMessage()); 
     } 
     return null; 
    } 

Line 62 charRead = reader.read(bufferRead); Любая помощь будет оценена.

+0

попытаться изменить 'while (true)' with 'while (reader.readLine()! = Null)' –

+0

Я пробовал, но получал ту же ошибку. –

+0

Попробуйте изменить номер строки: от 10 до 22 с помощью этого кода 'String str; while ((str = reader.readLine())! = Null) { xml.append (str); } reader.close(); ' –

ответ

0

Наш проект столкнулся с подобной проблемой. И наше решение состоит в том, чтобы добавить конфигурацию для http-заголовка. addHeader («Connection», «close»)

Смежные вопросы