Android アプリケーションで URL を使用して画像を読み込もうとしています。私はそれを正常にロードし、Web からの画像をアプリに取り込みました。私がしたことは、私の画像ローダーで、私はこれを持っていました:
try {
Bitmap bitmap=null;
URL imageUrl = new URL(url);
HttpURLConnection conn = (HttpURLConnection)imageUrl.openConnection();
conn.setConnectTimeout(1000);
conn.setReadTimeout(1000);
conn.setInstanceFollowRedirects(true);
InputStream is=conn.getInputStream();
OutputStream os = new FileOutputStream(f);
Utils.CopyStream(is, os);
os.close();
bitmap = decodeFile(f);
return bitmap;
} catch (Throwable ex){
ex.printStackTrace();
if(ex instanceof OutOfMemoryError)
memoryCache.clear();
return null;
}
しかし、安全なサーバーから画像を取得する必要もあります。PC ブラウザから画像の URL にアクセスする場合と同様に、次の認証を受ける必要があります。
そのため、ImageLoader を変更しました。だから私は認証のために何かを追加しました:
try {
Bitmap bitmap=null;
URL imageUrl = new URL(url);
String userPass = username+":"+password;
byte[] encode = Base64.encode(userPass.getBytes(), Base64.NO_WRAP);
HttpURLConnection conn = (HttpURLConnection)imageUrl.openConnection();
conn.setRequestProperty("Authentication", "Basic" + encode.toString());
conn.setConnectTimeout(1000);
conn.setReadTimeout(1000);
conn.setInstanceFollowRedirects(true);
InputStream is=conn.getInputStream();
OutputStream os = new FileOutputStream(f);
Utils.CopyStream(is, os);
os.close();
bitmap = decodeFile(f);
return bitmap;
} catch (Throwable ex){
ex.printStackTrace();
if(ex instanceof OutOfMemoryError)
memoryCache.clear();
return null;
}
問題は、その保護されたサーバーからのイメージをアプリケーションにロードできないことです。追加したので、回転するプログレスバーが表示されるだけです。どの領域を間違えましたか?または、セキュリティで保護されたサーバーから画像の URL を読み込むので、その部分をどのように改善すればよいですか? もちろん、ユーザー名とパスワードは知っています。
どんな助けでも大歓迎です。
ところで、私が受け取る応答は 400 - Bad Request です。