问题描述:我正在尝试使用InputStream从网络获取数据,但是我得到的结果是空的或空白的。以下是我的代码示例:
public String getDataFromURL(String urlString) {
String result = "";
try {
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("GET");
conn.setConnectTimeout(5000);
conn.setReadTimeout(5000);
InputStream inputStream = conn.getInputStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = bufferedReader.readLine()) != null) {
result += line;
}
bufferedReader.close();
inputStream.close();
conn.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
return result;
}
解决方法:
权限。AsyncTask
或Thread
来执行网络请求,以避免在主线程上进行网络请求造成的阻塞。conn.getResponseCode()
来获取服务器的响应状态码,以检查是否成功连接到服务器。conn.getErrorStream()
来获取错误的输入流,以查看服务器返回的错误信息。如果你仍然无法解决问题,请提供更多的细节和错误信息,以便我们能够更好地帮助你解决问题。