Http Referer в WebView - Android - PullRequest
       2

Http Referer в WebView - Android

1 голос
/ 17 мая 2011

При разработке моего простого приложения, отображающего изображения в WebView, у меня возникают некоторые проблемы.

Изображения не могут быть загружены из-за перенаправления на другую страницу. Я нашел проблему, и она работает на меня наполовину. Решение

Например:

WebView ww = new WebView(this);

Я пытаюсь загрузить изображение так:

ww.loadUrl("http://i1.kwejk.pl/site_media/obrazki/92825-ism.jpg");

и изображение не может быть загружено из-за перенаправления.

Но когда я загружаю изображение вот так:

Map extraHeaders = new HashMap(); extraHeaders.put("Referer", "2"); ww.loadUrl("http://i1.kwejk.pl/site_media/obrazki/92825-ism.jpg", extraHeaders);

работает нормально.

И самая большая проблема в том, что я загружаю около 10 изображений в WebView следующим образом:

String data="<html><body><img src="link1" /><img src="link2" /><img src="link3" /></body></html>";

ww.loadData(data);

И вопрос: есть ли возможность установить реферер, когда я пытаюсь загрузить данные вместо loadUrl?

Ответы [ 2 ]

1 голос
/ 17 июня 2011

вот мое очень простое решение, просто загрузить данные с базы

http://androidyou.blogspot.com/2011/06/how-to-set-android-webview-referrer.html

1 голос
/ 19 мая 2011

Я нашел решение для моей проблемы.

Если у кого-то есть это в любое время, вот решение:

Сначала вам нужно скачать изображение:

Bitmap image;
URL myFileUrl = new URL(urlToImage); 
HttpURLConnection conn= (HttpURLConnection)myFileUrl.openConnection();
conn.setDoInput(true);
conn.addRequestProperty("Referer", "httpReferer");
conn.connect();
InputStream is = conn.getInputStream();
image = BitmapFactory.decodeStream(is);   

Затем вам нужно преобразовать растровое изображение в строку:

ByteArrayOutputStream bos = new ByteArrayOutputStream();
image.compress(CompressFormat.JPEG, 40, bos);
byte[] bitmapdata = bos.toByteArray();
String imgToString = Base64.encodeBytes(bitmapdata);

Теперь в WebView легко отобразить строку:

String src = "<html><body><img src='data:image/png;base64," + imgToString + "'/></body></html>"

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

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