2013-05-16 39 views
0

我將使用Apache HTTP客戶端從Android上的url獲取文件流,我想檢查流的標題來確定是否應該加載整個文件,以避免網絡資源的無謂成本。
現在,我用下面的代碼獲得進入數據流,並從它剛剛看了前幾個字節:當我剛剛讀取前幾個字節使用Apache HTTP客戶端,Java,Android

response = mClient.execute(method, localcontext); 
final HttpEntity entity = response.getEntity(); 
if (entity != null) { 
    InputStream instream = entity.getContent(); 
    byte[] ints = new byte[2]; 
    instream.read(ints); 
} 

我想知道如果整個文件將在上述過程中被加載。我應該明確關閉這個流。怎麼樣?
謝謝〜

回答

0

更好的方法是使用HEAD方法。它只是返回http標頭,並沒有實際的內容或主體。

例(from official site

HeadMethod head = new HeadMethod("http://jakarta.apache.org"); 
     // execute the method and handle any error responses. 
     ... 
     // Retrieve all the headers. 
     Header[] headers = head.getResponseHeaders(); 

一旦你的頭,你可以檢查它們,然後作出相應的另一個GET/POST調用實際下載的內容。

+0

對不起,但是當我說流的標頭時,我實際上是指實體內容的前面部分:P – Bolton

+0

我只想知道在閱讀了我想要的數據後是否應該關閉流。 – Bolton

+0

是的。它是一條小溪。所以數據不斷流動,當你關閉它時,它就會停止。 – Santosh