Android 检查HttpResponse中是否包含字符串、null或图像

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

如果服务器没有返回映像,我想将imgData作为null发送。但是使用此代码,它永远不会返回null。我需要检查HttpResponse是否包含null或image,或者在我从服务器发送响应时是否包含错误消息。如果映像存在,则以字节数组的形式发送。如果不存在,则为null,如果发生错误,则为error消息已发送

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();