AndroidHttpClient не может получитьEntity (). GetContent () после закрытия - PullRequest
4 голосов
/ 22 февраля 2012
public InputStream getInputStream() {
    AndroidHttpClient client = AndroidHttpClient.newInstance(USERAGENT);
    HttpUriRequest request = new HttpGet(url);
    InputStream in = null;
    try {
        HttpResponse response = client.execute(request);
        in = response.getEntity().getContent();
        return in;
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        client.close();
    }
}

Я поместил этот метод в класс Util.Но когда я вызываю getInputStream () в другом классе, я не могу получить InputSteam, потому что AndroidHttpClient закрыт.если я не закрываю AndroidHttpClient, появляется «утечка найдена, AndroidHttpClient создан и никогда не закрывается».Как получить контент в этой ситуации

Ответы [ 2 ]

5 голосов
/ 22 февраля 2012

Вот так, например:

public InputStream getInputStream() {
    AndroidHttpClient client = AndroidHttpClient.newInstance(USERAGENT);
    HttpUriRequest request = new HttpGet(url);
    InputStream in = null;
    try {
        HttpResponse response = client.execute(request);
        return new ByteArrayInputStream(new EntityUtils.toByteArray(response.getEntity()));
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        client.close();
    }
}
0 голосов
/ 08 марта 2015

Проверьте, включено ли разрешение на доступ к Интернету в файле манифеста.

<uses-permission android:name="android.permission.INTERNET"/> 

Включите указанную выше строку в ваш Androidmanifest.xml

...