какой метод http лучше всего подходит для Android? - PullRequest
1 голос
/ 19 января 2012

У меня есть 2 способа загрузить картинку из интернета, результат - входной поток.но одно из них приведет к сбою образа загрузки, я не знаю почему, вот код ошибки:

            HttpGet get = new HttpGet(imageName);
            HttpResponse response = (HttpResponse) httpClient.execute(get);
            HttpEntity entity = response.getEntity();
            BufferedHttpEntity bufHttpEntity = new BufferedHttpEntity(entity); 
            InputStream is = bufHttpEntity.getContent();

это еще один, который я использую:

        URL imageUrl = new URL(imageName);
        conn = (HttpURLConnection) imageUrl
                .openConnection();
        conn.setConnectTimeout(30000);
        conn.setReadTimeout(30000);
        conn.setInstanceFollowRedirects(true);
        InputStream is = conn.getInputStream();

Мне интересно, может ли кто-нибудь сказать мне 1. Почему я использую метод 1, чтобы получить входной трамвай, который не может показать картинку 2. Я видел, как кто-то сказал, что использует httpclient, не используйте соединениея не знаю причину ??Это соединение хуже, чем http-клиент ??

Я использую в многопоточной среде, метод два работает нормально, но метод один не может.

1 Ответ

0 голосов
/ 19 января 2012
public static Bitmap getimage(String imageUrl) {

        Log.i("imageurl", imageUrl);
        Bitmap bitmap = null;
        BufferedInputStream bis = null;
        InputStream is = null;

        try {
            String url = imageUrl;
            URL myUrl = new URL(url);
            HttpURLConnection conn = (HttpURLConnection) myUrl.openConnection();

            conn.setDoInput(true);
            conn.connect();
            if (conn.getResponseCode() != 404) {
                is = conn.getInputStream();
                bis = new BufferedInputStream(is, 8192);
                bitmap = BitmapFactory.decodeStream(bis);

            }
            conn.disconnect();

        }catch (Exception e) {
             Log.e("getImageData", e.toString());
             return bitmap;
        }
        finally{
            if (bis != null) 
            {
                try{
                    bis.close();
                }catch (IOException e) {
                    e.printStackTrace();
                }
            }
            if (is != null) 
            {
                try {
                    is.close();
                }catch (IOException e) {
                    e.printStackTrace();
                }
            }

        }
         return bitmap;
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...