java.io.EOFEException:\n从BufferedReader读取时未找到
我试图读取rss提要,但在尝试从BufferedReader读取时出现以下错误 下面是读取和转换rss提要的方法java.io.EOFEException:\n从BufferedReader读取时未找到,java,android,android-7.0-nougat,Java,Android,Android 7.0 Nougat,我试图读取rss提要,但在尝试从BufferedReader读取时出现以下错误 下面是读取和转换rss提要的方法 private String downloadXML(String urlPath){ StringBuilder xml = new StringBuilder(); try { URL url = new URL(urlPath); HttpURLConnection connection = (H
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;
}
私有字符串下载XML(字符串URL路径){
StringBuilder xml=新的StringBuilder();
试一试{
URL=新URL(URL路径);
HttpURLConnection connection=(HttpURLConnection)url.openConnection();
int responseCode=connection.getResponseCode();
d(标记“downloadXML:响应代码为”+responseCode);
BufferedReader=new BufferedReader(new InputStreamReader(connection.getInputStream());
int-charRead;
char[]bufferRead=新字符[500];
while(true){
charRead=reader.read(bufferRead);
if(charRead0){
append(String.copyValueOf(bufferRead,0,charRead));
}
}
reader.close();
返回xml.toString();
}
捕获(格式错误){
Log.e(标记“downloadXML:无效URL”+e.getMessage());
}
捕获(IOE异常){
Log.e(标记“downloadXML:IO异常”+e.getMessage());
e、 printStackTrace();
}
捕获(安全异常e){
Log.e(标记“downloadXML:SecurityEception”+e.getMessage());
}
返回null;
}
第62行是charRead=reader.read(bufferRead)代码>
任何帮助都将不胜感激。我们的项目遇到了类似的问题。我们的解决方案是为http头添加一个配置。
addHeader(“Connection”,“close”)尝试更改while(true)
和while(reader.readLine()!=null)
我尝试过,但得到了相同的错误。尝试使用此代码将行号:10更改为22String str;while((str=reader.readLine())!=null){xml.append(str);}reader.close()代码>java.io.EOFException:\n未找到:size=0在您建议的更改之后,我发现了此异常这看起来像是Android中的一个主要错误。如果你没有,它没有任何商业阅读行,也没有任何商业抱怨缺少liinefeed。NBcharRead
不可能为零,除非buffer
的长度为零,而不是。别写毫无意义的测试,你救了我的命