Не удается загрузить изображение с моего локального сервера на Android - PullRequest
0 голосов
/ 11 декабря 2011

Я пытаюсь загрузить изображение с сервера, чтобы показать его в ImageView

Я использовал

    ImageView imgView = (ImageView) findViewById(R.id.ivProduct);

    Bitmap bitmap = null;

    try {

        URL urlImage = new URL(
                "http://www.google.fr/intl/en_com/images/srpr/logo1w.png");
        HttpURLConnection connection = (HttpURLConnection) urlImage
                .openConnection();
        InputStream inputStream = connection.getInputStream();
        bitmap = BitmapFactory.decodeStream(inputStream);
        imgView.setImageBitmap(bitmap);
    } catch (MalformedURLException e) {
        e.printStackTrace();
    } catch (IOException e) {
        e.printStackTrace();
    }

}`

Это работало нормально, но когда я скачал тот же образ на свой сервер и изменил URL на

http://localhost:9527/market_helper/img_products/logo1w.png

Это не сработало. В чем проблема?

Ответы [ 2 ]

2 голосов
/ 11 декабря 2011

Проблема в том, что в вашем URL-адресе http://localhost:9527 говорит, что он работает на сервере на вашем локальном компьютере, но при доступе с вашего Android http://localhost относится к самому устройству.

Если вынаходятся в той же сети, вы можете попробовать получить к ней доступ, заменив часть localhost локальным IP-адресом вашего ПК (например, 192.168.100.6). Чтобы узнать, какой у вас IP, введите ipconfig в командной строке.

0 голосов
/ 11 декабря 2011

localhost - это петлевой адаптер на машине (127.0.0.1), вы, вероятно, не сможете использовать этот адрес из приложения для Android (может работать с симулятором, но я все равно не буду его использовать).

Если вы находитесь в той же сети, имя машины может работать, но это зависит от того, что вы используете для размещения образа.Если вы используете полноценный веб-сервер, такой как IIS или что-то в этом роде, вы должны быть хороши (не забудьте проверить настройки брандмауэра на сервере для всех входящих соединений на порт, который вы используете).Если вы используете что-то вроде веб-сервера VS (cassini), то он не будет работать, потому что он не разрешает соединения из коробки.

Если вы не находитесь в одной сети (например, телефон использует данные сотовой связи), вам понадобится что-то общедоступное (DNS-имя или IP-адрес, указывающий на ваш сервер в Интернете).Вы не указываете, что вы используете на сервере, но существует множество бесплатных или очень дешевых хостинговых решений, которые вы можете использовать.

Надеюсь, это поможет!

...