我正在尝试使用我的应用程序调用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());
}
由于收到的空响应,lenght等于-1
来自网址的响应是否需要为HTML?或者我输出的任何内容都可以通过HttpClient获取?
答案 0 :(得分:1)
响应不需要是HTML,但如果服务器端没有在响应中返回内容长度标头,则长度将为负。
答案 1 :(得分:1)
响应不一定需要是HTML格式。
getContentLength()返回的负值表示服务器不返回内容长度。这并不意味着没有内容。可以让请求返回内容,但仍然有getContentLength()返回的负值。
您仍然可以获取请求返回的内容:
ByteArrayOutputStream baos = new ByteArrayOutputStream();
entity.writeTo(baos);
String contentString = baos.toString();