我试图在我的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;
}
问题是,来自该安全服务器的图像无法加载到我的应用程序中。它只是显示我的旋转进度条,因为我添加了它。我犯了哪个区域?或者我应该如何改进那部分,因为我将从安全服务器加载图像网址? 当然,我知道用户名和密码。
非常感谢任何帮助。
顺便说一句,我得到的回答是400 - 错误请求。