我试图在我的 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 - 错误请求。