空HTTP呼叫,但没有错误

问题描述:

我想调用一个web服务与我的应用程序,但我没有错误,URL是好的,并返回一些东西(通过浏览器),但我没有得到任何内容。空HTTP呼叫,但没有错误

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

lenght等于-1,由于他收到

是否从URL的响应必须是HTML的空响应?或者我输出的任何东西都可以被HttpClient抓住?

+0

是IC或以上? – Vinay 2012-07-26 03:20:35

+0

是的。它在ICS上。 – 2012-07-26 22:01:07

+0

然后阅读下面的答案,如果它仍然不适合你。 – Vinay 2012-07-27 05:11:29

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

响应不一定需要使用HTML。

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

,您仍然可以获取由内容请求返回:

您正在使用哪个版本的Android
ByteArrayOutputStream baos = new ByteArrayOutputStream(); 
entity.writeTo(baos); 
String contentString = baos.toString(); 
+0

我添加了3行,它在“entity.writeTo(baos);失败,错误是”java.lang.IllegalStateException:内容已被占用“,这是什么意思? – 2012-07-26 22:03:04