Я пытаюсь получить HTML-контент.Все работает в потоке AsyncTask.Это мой код:
protected String doInBackground(String... params) {
InputStream content = null;
try {
HttpGet httpGet = new HttpGet(params[0]);
HttpClient httpclient = new DefaultHttpClient();
HttpResponse response = httpclient.execute(httpGet);
content = response.getEntity().getContent();
} catch (Exception e) {
}
if (content == null) {
return "Error";
}
BufferedReader in = new BufferedReader(new InputStreamReader(content));
StringBuffer sb = new StringBuffer("");
String line = "";
String NL = System.getProperty("line.separator");
try {
while (((line = in.readLine()) != null)) {
Log.i("DEBUG", line);
sb.append(line + NL);
}
Log.i("DEBUG2", sb.toString());
} catch (IOException e1) {
e1.printStackTrace();
}
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
}
return sb.toString();
}
Проблема в том, что я получаю только часть ответа.Первая отладка показывает, что цикл while видит весь контент, а вторая отладка, которая показывает информацию из StringBuffer, показывает только часть контента.Итак, есть ли ограничения для использования StringBuffer в AsyncTask?
Я пытался использовать EntitiyUtils, но получил ту же проблему:
return new String(EntityUtils.toString(entity));
Какие-нибудь решения, советы?
Заранее спасибо!