0

我正在尝试使用我的应用程序调用 Web 服务,但我没有收到任何错误,该 URL 是正确的并返回一些内容(通过浏览器),但我没有得到任何内容。

try {
    HttpClient httpclient = new DefaultHttpClient();
    HttpGet httpget = new HttpGet(url);
    HttpResponse response = httpclient.execute(httpget);
    HttpEntity entity = response.getEntity();
    int lenght = (int) entity.getContentLength();
    is = entity.getContent();
} catch (Exception e) {
    Log.e("log_tag", "Error in http connection" + e.toString());
}

由于他收到空响应,长度等于 -1

来自 url 的响应是否需要是 HTML ?或者我输出的任何东西都可以被 HttpClient 抓取?

4

2 回答 2

1

响应不需要是 HTML,但如果服务器端没有在响应中返回 content-length 标头,则长度将为负数。

于 2012-07-26T03:24:58.727 回答
1

响应不一定必须是 HTML。

getContentLength() 返回负值表示服务器不返回内容长度。这并不意味着没有内容。请求可能会返回内容,但 getContentLength() 仍会返回负值。

您仍然可以获得请求返回的内容:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
entity.writeTo(baos);
String contentString = baos.toString();
于 2012-07-26T03:26:32.910 回答