如何从需要登录的网址获取图片?

时间:2017-08-03 07:37:39

标签: java android android-studio jsoup

当我尝试从需要登录以查看特定图片的网址加载图片时,我遇到了android studio的问题。

这是获取图片网址的代码,它会返回该图片的绝对网址。

Document document = Jsoup.connect(url + "home").timeout(0).header("Cookie", cookie).get();
String imageUrl = document.select("MY CSS SELECTOR").attr("abs:data-src");

我正在使用此代码将该网址转换为位图图片

URLConnection connection = new java.net.URL(imageUrl).openConnection();
connection.setRequestProperty("Cookie", cookie);
connection.connect();
Bitmap temp = BitmapFactory.decodeStream(connection.getInputStream());

所以我猜我的第二个代码没有按预期工作,我想知道如何在我登录时加载图像显示。

由于

1 个答案:

答案 0 :(得分:0)

首先,知道服务器对您的两个请求实际响应的内容可能会有所帮助。试图找到一个没有它的问题更像是一次狩猎而不是实际的错误分析。

无论如何,除了基于cookie的身份验证之外,还有一些更常用的身份验证方案(例如基于http的身份验证)。因此,如果我是你,我会首先确保您尝试访问的页面确实使用基于cookie的身份验证。然后确保从第一个请求中提取的URL正确无误。如果不是,请尝试记录实际的服务器响应,因为它可能会说明您做错了什么。如果服务器响应某种"未经授权/访问被拒绝"回复,确保您的请求以您认为发送的方式发送。 (我已经看到库自动设置丢失的http标头,这可能导致服务器无法以您期望的方式响应) 最后,它可能只是android的图像解码器让你失望。请参阅此问题,例如BitmapFactory works perfectly on .png image but returns null when i load jpeg image from url