【发布时间】:2017-01-04 02:15:25
【问题描述】:
Request request = new Request.Builder()
.url(url)
.addHeader("Cookie", "JSESSIONID="+sessionId)
Response response = client.newCall(request).execute();
if (response.isSuccessful()) {
InputStream inputStream = response.body().byteStream();
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
imageView.setImageBitmap(bitmap);
}
我使用 okhttp3 构建一个带有 cookie 和 session 的请求,response.body() 是验证代码。 inputStream 不为空,但位图为空。我试过下面的方法,但是位图也是空的。
private Bitmap convertBitmap(final Response response) throws IOException {
InputStream inputStream = response.body().byteStream();
ByteArrayOutputStream outStream = new ByteArrayOutputStream();
byte[] buffer = new byte[1024];
byte[] bmp_buffer;
int len = 0;
while ((len = inputStream.read(buffer)) != -1) {
outStream.write(buffer, 0, len);
}
outStream.close();
inputStream.close();
bmp_buffer = outStream.toByteArray();
return BitmapFactory.decodeByteArray(bmp_buffer, 0, bmp_buffer.length);
}
【问题讨论】:
-
您确定响应中的 byteArray 是图像吗?
-
是的。我用Glide试了一下url,可以在imageView中显示
标签: android bitmap imageview inputstream okhttp3