2016-06-14 4 views
-3

次のURLにBufferedReaderと入力すると、内容は配信されません。単純なブラウザでもコンテンツを表示できます。従って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'がnullになったときに出て除き、何もしません。だから、それはnullです。正確に何を期待していたのですか? – EJP

答えて

1

あなたが読んでいるラインのすべてを無視しています。 strnullになると、ループを終了します。したがって、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 
} 
関連する問題