2012-07-26 114 views
0

我想調用一個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

回答

1

響應不需要是HTML,但如果服務器端在響應中沒有返回內容長度標頭,則長度將爲負數。

1

響應不一定需要使用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