Android 检查HttpResponse中是否包含字符串、null或图像
如果服务器没有返回映像,我想将imgData作为null发送。但是使用此代码,它永远不会返回null。我需要检查HttpResponse是否包含null或image,或者在我从服务器发送响应时是否包含错误消息。如果映像存在,则以字节数组的形式发送。如果不存在,则为null,如果发生错误,则为error消息已发送Android 检查HttpResponse中是否包含字符串、null或图像,android,httpresponse,Android,Httpresponse,如果服务器没有返回映像,我想将imgData作为null发送。但是使用此代码,它永远不会返回null。我需要检查HttpResponse是否包含null或image,或者在我从服务器发送响应时是否包含错误消息。如果映像存在,则以字节数组的形式发送。如果不存在,则为null,如果发生错误,则为error消息已发送 public static byte[] getCommentImage(final int commentId) { byte[] imgData = null; Ht
public static byte[] getCommentImage(final int commentId) {
byte[] imgData = null;
HttpResponse res= null;
try {
res = $.get(COMMENT_IMAGE_URL, new Object[] {"comment_id", commentId });
HttpEntity resEntity = res.getEntity();
imgData = EntityUtils.toByteArray(resEntity);
Log.d("getCommentImage API",imgData+" ");
} catch (Exception e) {
e.printStackTrace();
}
return imgData;
}
HTTP响应通常包含声明内容类型的标头。 “字符串”(或HTML页面)通常是内容类型“text/HTML”,用于图像“image/jpeg”或“image/png” 此外,您还有状态/结果代码:
res.getStatusLine().getStatusCode();
我假设结果代码是!=200(HTTP_OK),以防得到空值。您可以控制服务器吗?如果HttpResponse包含null,这是什么意思?如果数据库中没有映像,我将以null的形式发送数据如果您控制了服务器,您可以任意决定响应正文的第一个字节是类型,因此0x00表示null,0xaa表示error,0xff表示image,然后根据type@lellomanres=org.apache.http.message。BasicHttpResponse@42ec7440这是DB中存在图像时的res值。。。。。。。。。。当图像不存在时,我将从我的PHP api中给出echo null,在这种情况下,res的值是org.apache.http.message。BasicHttpResponse@424d9a50..Why如果服务器没有映像,是否不发送403?像地球上的其他HTTP服务器一样?我检查了这两种情况:resEntity.getContentType().getValue()在服务器发送图像和服务器不发送图像时都是text/html
res.getStatusLine().getStatusCode();