【发布时间】:2013-06-09 23:58:57
【问题描述】:
我想知道如何确定一个空的 http 响应。 对于空的 http 响应,我的意思是,http 响应只会设置一些标头,但包含一个空的 http 正文。
例如:我对网络服务器执行 HTTP POST,但网络服务器只会返回我的 HTTP POST 的状态代码,而不会返回其他任何内容。
问题是,我在 apache HttpClient 之上编写了一个小的 http 框架来进行自动 json 解析等。所以这个框架的默认用例是发出请求并解析响应。但是,如果响应不包含数据,如上例所述,我将确保我的框架跳过 json 解析。
所以我做了这样的事情:
HttpResponse response = httpClient.execute(uriRequest);
HttpEntity entity = response.getEntity();
if (entity != null){
InputStream in = entity.getContent();
// json parsing
}
但是实体总是 != null。并且检索到的输入流也是!= null。有没有简单的方法可以判断http body是否为空?
我看到的唯一方法是服务器响应包含设置为 0 的 Content-Length 标头字段。 但并不是每个服务器都设置了这个字段。
有什么建议吗?
【问题讨论】:
标签: java android httpclient