2013-06-20 96 views
1

如果服务器没有返回图像,我想发送imgData为null。但是使用此代码它永远不会返回null.I需要检查HttpResponse是否包含null或image或者当我从服务器发送响应时出现错误消息。如果图像存在,它将以字节数组的形式发送(如果不存在),则返回null,如果发生错误,则发送错误消息。检查HttpResponse中是否有字符串或空值或图像

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; 
    } 
+0

你有控制服务器吗? HttpResponse包含null是什么意思? – lelloman

+0

如果图像不存在数据库我发送数据为空 – abc

+0

如果你有控制权的服务器,你可以任意决定,响应正文的第一个字节是类型,所以也许0x00为null,0xaa为错误和0xff的图像,然后根据类型读取其他字节 – lelloman

回答

0

HTTP响应通常包含声明内容类型的头。 对于图像“image/jpeg”或“image/png”,“String”(或HTML页面)通常是内容类型“text/html”。

resEntity.getContentType().getValue(); 

而且你有状态/结果代码:

res.getStatusLine().getStatusCode(); 

我认为这个结果代码= 200(HTTP_OK)的情况下,你会得到一个空值。

+0

我检查了这两种情况resEntity.getContentType()。getValue()是text/html当服务器发送图像和服务器不发送图像时 – abc

相关问题