Android - 使用来自安全服务器的URL加载图像

时间:2013-04-13 03:47:05

标签: android android-image

我试图在我的Android应用程序中使用url加载图像。我已成功加载它并使用来自网络的图像填充我的应用程序。我做的是,在我的图像加载器中,我有这个:

     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时,我需要进行此身份验证:

enter image description here

所以,这就是为什么,我修改了我的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;
    }

问题是,来自该安全服务器的图像无法加载到我的应用程序中。它只是显示我的旋转进度条,因为我添加了它。我犯了哪个区域?或者我应该如何改进那部分,因为我将从安全服务器加载图像网址? 当然,我知道用户名和密码。

非常感谢任何帮助。

顺便说一句,我得到的回答是400 - 错误请求。

0 个答案:

没有答案