0

「HttpURLConnection」を使用してURLからビットマップを取得するAndroidアプリを開発しました。

このコードは、一般的な URL で正常に機能します。残念ながら、解決できない問題が 1 つ見つかりました。

問題は、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();
}

この URL ( http://upic.me/i/lj/0avatar.jpg ) を Android の chrome ブラウザーで開くと、別の URL ( http://upic.me/show/37096796 ) にリダイレクトされます。

4

1 に答える 1

0

あなたはこれを試すことができます

AndroidSmartImageView

SmartImageView は、Android の標準 ImageView のドロップイン代替品であり、さらに URL またはユーザーの連絡先アドレス帳から画像を読み込むことができます。画像はメモリとディスクにキャッシュされ、超高速の読み込みが可能です。

于 2013-08-22T00:11:19.553 に答える