2017-08-03 197 views
0

我尝试从需要登录才能查看特定图片的网址加载图片时遇到了Android工作室的问题。如何从需要登录的网址获取图片?

这是获取图像URL的代码,它返回该图像的绝对URL。

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

,我使用此代码到该URL转换为位图图像

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

所以我猜测,如预期我的第二个代码不工作,我想知道我可以当我在我登录负载图像只显示。

感谢

+0

尝试此链接: https://stackoverflow.com/a/45073477/4116560 – sam

回答

0

首先,它很可能将是有益的知道,哪些服务器实际上可以让您的请求的响应。试图找到一个没有问题的问题更像是寻找巫婆而不是实际的错误分析。

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