3

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 です。

4

0 に答える 0