2016-06-14 73 views
-3

正在载入以下带BufferedReader的URL,但内容不会传送。即使一个普通的浏览器可以显示内容。所以str将保持零。任何想法为什么?BufferedReader无法正常工作

URL url = new URL("http://www.omdbapi.com/?t=zorr&y=&plot=short&r=json"); 
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
String str; 
while ((str = in.readLine()) != null) {} 
Log.d("alma", str); 

enter image description here

+2

你的循环什么也不做,除了消耗输入和把它扔掉,而当'str'变为空然后退出。所以它是空的。你到底在期待什么? – EJP

回答

1

你忽视你正在阅读的线。当str变为null时,您退出循环。因此,您的Log.d()通话将始终显示null

如果你想使用你正在阅读的线,使用str`你现在还是空的块:

while ((str = in.readLine()) != null) { 
    // do something with str 
} 

您也不妨考虑使用第三方库,提供了一个更简单API。例如,OkHttp3通过URL fairly easy获取字符串响应。

1

试试这个:

URL url = new URL("http://www.omdbapi.com/?t=zorr&y=&plot=short&r=json"); 
BufferedReader in = new BufferedReader(new InputStreamReader(url.openStream())); 
String str; 
while ((str = in.readLine()) != null) { 
    Log.d("alma", str); // this should be here 
}