Android Studio - HttpUrlConnection 和 BufferedReader 没有读取所有内容?
Android Studio - HttpUrlConnection & BufferedReader doesn't read everything?
因此,当 运行将此代码放在较小的页面上时,运行 没问题。但是当我 运行 它在更大的页面(例如 Whosebug 或其他任何页面)上时,它没有在字符串结果中获得完整的源代码。有什么我没有考虑或做错事的人吗?谢谢!
示例:对于 Whosebug,它停在源代码的第 35 行只有几个字符,而不是 3000 多行代码。
日志的最后一行:
StackExchange.using("gp
我的代码:
protected void runItNow(View v){
Log.i("INSIDE: ", "runItNow");
DownloadTask downloadTask = new DownloadTask();
String result;
try {
result = downloadTask.execute("http://www.whosebug.com/").get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
private class DownloadTask extends AsyncTask<String, Void, String>{
@Override
protected String doInBackground(String... params) {
URL url;
HttpURLConnection urlConnection;
try{
url = new URL(params[0]);
urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = urlConnection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
urlConnection.setConnectTimeout(250000);
int data;
char[] buffer = new char[4096];
StringBuilder builder = new StringBuilder();
while ((data = reader.read(buffer)) != -1){
builder.append(buffer, 0, data);
}
String results = builder.toString();
Log.i("Results: ", results);
in.close();
reader.close();
urlConnection.disconnect();
return results;
}catch(Exception e){
e.printStackTrace();
}
return null;
}
}
您是否仅使用 Log.i("Results: ", results);
检查输出? Logcat 可能正在删除其余字符。尝试将其写入文件并检查其内容。
因此,当 运行将此代码放在较小的页面上时,运行 没问题。但是当我 运行 它在更大的页面(例如 Whosebug 或其他任何页面)上时,它没有在字符串结果中获得完整的源代码。有什么我没有考虑或做错事的人吗?谢谢!
示例:对于 Whosebug,它停在源代码的第 35 行只有几个字符,而不是 3000 多行代码。
日志的最后一行:
StackExchange.using("gp
我的代码:
protected void runItNow(View v){
Log.i("INSIDE: ", "runItNow");
DownloadTask downloadTask = new DownloadTask();
String result;
try {
result = downloadTask.execute("http://www.whosebug.com/").get();
} catch (InterruptedException e) {
e.printStackTrace();
} catch (ExecutionException e) {
e.printStackTrace();
}
}
private class DownloadTask extends AsyncTask<String, Void, String>{
@Override
protected String doInBackground(String... params) {
URL url;
HttpURLConnection urlConnection;
try{
url = new URL(params[0]);
urlConnection = (HttpURLConnection) url.openConnection();
InputStream in = urlConnection.getInputStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
urlConnection.setConnectTimeout(250000);
int data;
char[] buffer = new char[4096];
StringBuilder builder = new StringBuilder();
while ((data = reader.read(buffer)) != -1){
builder.append(buffer, 0, data);
}
String results = builder.toString();
Log.i("Results: ", results);
in.close();
reader.close();
urlConnection.disconnect();
return results;
}catch(Exception e){
e.printStackTrace();
}
return null;
}
}
您是否仅使用 Log.i("Results: ", results);
检查输出? Logcat 可能正在删除其余字符。尝试将其写入文件并检查其内容。