BufferedReader 不能正常工作
BufferedReader does not work well
正在加载 URL 和 BufferedReader
之后的内容,但未传送内容。即使普通浏览器可以显示内容。所以 str
将保持为零。知道为什么吗?
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);
您忽略了正在阅读的所有行。然后当 str
变为 null
时退出循环。因此,您的 Log.d()
调用将始终显示 null
.
如果您想使用您正在阅读的行,请使用 str
inside` 您当前的空块:
while ((str = in.readLine()) != null) {
// do something with str
}
您可能还希望考虑使用提供更简单 API 的第三方库。例如,OkHttp3 从 URL fairly easy.
获取字符串响应
试试这个:
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
}
正在加载 URL 和 BufferedReader
之后的内容,但未传送内容。即使普通浏览器可以显示内容。所以 str
将保持为零。知道为什么吗?
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);
您忽略了正在阅读的所有行。然后当 str
变为 null
时退出循环。因此,您的 Log.d()
调用将始终显示 null
.
如果您想使用您正在阅读的行,请使用 str
inside` 您当前的空块:
while ((str = in.readLine()) != null) {
// do something with str
}
您可能还希望考虑使用提供更简单 API 的第三方库。例如,OkHttp3 从 URL fairly easy.
获取字符串响应试试这个:
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
}