如何在不同的listView中使用jsoup解析的HTTP保护URL设置图像?

时间:2015-07-30 11:48:13

标签: android html parsing imageview jsoup

执行上面的代码我在 objImages

中有一个带网址图片的arraylist
Element table2 = document.select("TABLE").get(1); 
                Elements asWithName  = table2.select("tr>td a[name]");
                for (Element aWithName : asWithName) {
                    String name = aWithName.attr("name");
                    hostName.add(name);
                    Element tr = aWithName.parent().parent();
                    for (Element td : tr.select("td")){
                        Element img = td.select("img").first();
                        if (img == null){
                            continue;
                        }
                    String imgRelPath = img.attr("src");
                    images.add("http://hostname.com"+imgRelPath);
                    }
                    objImages = images.toArray(); 
                }
                objHostName = hostName.toArray();

好吧,我有网址。现在我必须从这些URL获取图像并将其放在imageView中,每个图像都在不同的imageView中。

我在做:

for {int i=0; i<objImages.length; i++}
    InputStream input = new java.net.URL(objImages[i]).openStream();
    bitmap = BitmapFactory.decodeStream(input);
    ...
}

问题是 http://hostname.com/hobbit/gifs/static/green.gif 受用户/密码保护(使用.htaccess文件)。

但它不起作用。有什么想法吗?

提前致谢。

1 个答案:

答案 0 :(得分:0)

检查this进行基本身份验证,this检查是否使用jsoup

下载图像

最后你会有这样的东西

String username = "foo";
String password = "bar";
String login = username + ":" + password;
String base64login = new String(Base64.encodeBase64(login.getBytes()));

Response resultImageResponse = Jsoup.header("Authorization", "Basic " + base64login)
                                    .connect(imageLocation).ignoreContentType(true).execute();

// output here
FileOutputStream out = (new FileOutputStream(new java.io.File(outputFolder + name)));
out.write(resultImageResponse.bodyAsBytes());  // resultImageResponse.body() is where the image's contents are.
out.close();