Android-如何使用HttpURLConnection从重定向到移动版本的URL获取位图?

Android-如何使用HttpURLConnection从重定向到移动版本的URL获取位图?,android,bitmap,imageview,user-agent,httpurlconnection,Android,Bitmap,Imageview,User Agent,Httpurlconnection,我开发了一个android应用程序,它使用“HttpURLConnection”从URL获取位图 这段代码适用于一般URL。不幸的是,我发现了一个无法解决的问题 问题是,当URL位于文件共享的站点上时,它将检测到用户代理。如果用户代理显示设备是移动的,它将重定向到带有大量HTML标记的移动版本页面。因此,我无法获取位图 我曾尝试用多种方式更改用户代理,但根本不起作用 仅供参考:使用相同的代码,可以获得一些带有通用URL的位图。但当它位于具有重定向代码的站点上时,它将无法工作 有人有什么想法吗 多

我开发了一个android应用程序,它使用“HttpURLConnection”从URL获取位图

这段代码适用于一般URL。不幸的是,我发现了一个无法解决的问题

问题是,当URL位于文件共享的站点上时,它将检测到用户代理。如果用户代理显示设备是移动的,它将重定向到带有大量HTML标记的移动版本页面。因此,我无法获取位图

我曾尝试用多种方式更改用户代理,但根本不起作用

仅供参考:使用相同的代码,可以获得一些带有通用URL的位图。但当它位于具有重定向代码的站点上时,它将无法工作

有人有什么想法吗

多谢各位

这是我的代码:

String imgUrl = "http://upic.me/i/lj/0avatar.jpg";
Bitmap img = null;
try{
    URL url = new URL(imgUrl);
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setRequestProperty( "User-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.4 (KHTML, like Gecko) Chrome/22.0.1229.94 Safari/537.4" );
    connection.setInstanceFollowRedirects(false);
    connection.setDoInput(true);
    connection.connect();
    InputStream input = connection.getInputStream();
    img = BitmapFactory.decodeStream(input);
}
catch (Exception e){
    e.printStackTrace();
}
当我在Android中通过chrome浏览器打开这个URL()时,它会重定向到另一个URL()。

你可以试试这个


SmartImageView是Android标准ImageView的替代品,它还允许从URL或用户联系人通讯簿加载图像。图像被缓存到内存和磁盘中,以便超快速加载。

您的代码正在运行。我得到了bitmap@SunilMishra谢谢你的帮助。是的,这就是工作。但有些网站有一个用户代理检测代码,如果你的设备是移动设备,而不是桌面,它将重定向到另一个链接。正如我在上面告诉你的,我的问题的例子是,如果它是一个移动屏幕,它将重定向到。谢谢。我试过你建议的图书馆,那是一个很好的图书馆。但还是有同样的问题。