3

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

在此处输入图像描述

所以,这就是为什么我修改了我的 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 - 错误请求。

4

0 回答 0