空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抓住?
答
响应不需要是HTML,但如果服务器端在响应中没有返回内容长度标头,则长度将为负数。
答
响应不一定需要使用HTML。
getContentLength()返回的负值表示服务器不返回内容长度。这并不意味着没有内容。有可能让请求返回内容,但getContentLength()返回负值。
,您仍然可以获取由内容请求返回:
您正在使用哪个版本的AndroidByteArrayOutputStream baos = new ByteArrayOutputStream();
entity.writeTo(baos);
String contentString = baos.toString();
+0
我添加了3行,它在“entity.writeTo(baos);失败,错误是”java.lang.IllegalStateException:内容已被占用“,这是什么意思? – 2012-07-26 22:03:04
是IC或以上? – Vinay 2012-07-26 03:20:35
是的。它在ICS上。 – 2012-07-26 22:01:07
然后阅读下面的答案,如果它仍然不适合你。 – Vinay 2012-07-27 05:11:29