gpt4 book ai didi

android - WebView 中的 Http Referer - Android

转载 作者:行者123 更新时间:2023-11-29 22:25:38 25 4
gpt4 key购买 nike

在开发在 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);

它工作正常。

最大的问题是我在 WebView 中加载了大约 10 张图像,如下所示:

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

ww.loadData(data);

问题是:当我尝试 loadData 而不是 loadUrl 时,是否有可能设置 referer?

最佳答案

我找到了解决问题的方法。

如果有人也有这个,这里是解决方案:

首先,您需要下载图片:

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);

然后需要将图片Bitmap转成String:

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

现在,像这样在 WebView 中显示 String 就很容易了:

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

希望对您有所帮助。

关于android - WebView 中的 Http Referer - Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6035121/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com