2012-06-21 51 views
0

我目前正在寫一些更新輪詢的東西。我儘量避免寫甚至一個簡單的REST接口爲這個(我們使用的是多休息,我仍然不知道這是有必要在這裏。爲什麼寫功能的接口已經在那裏?)的Apache獲取文件日期,而無需下載

我的想法是打開HttpUrlConnection並檢查文件上次修改日期的標題。 Apache顯然以UTC發送「Last-Modified」日期。檢查標題後,我會關閉連接而不實際檢索正文。我只擔心這可能會導致Apache日誌中的錯誤,這會很不方便。我只是想徵求你的意見。你認爲這可能有用嗎?更好的想法?

(我需要系統代理的支持,所以我唯一的選擇似乎是HttpURLConnection類)。

問候, 甜菊

+0

所以,基本上,你問「怎麼我剛取回的HTTP標頭不響應的身體嗎?」 –

回答

2

如果你看一下HTTP協議,你會看到它有一個HEAD請求,只是你所需要的。 Java運行時中HTTP請求的默認值是GET,並且很難改變它。

看一看HttpClient一個框架,允許您發送任何類型的請求。

+0

偉大的,非常感謝,雖然正如我所說我認爲Java 6仍然是越野車,當涉及到useSystemProxy。我會再次嘗試,但我認爲Apache的HttpClient的使用系統代理的時候也失敗(因爲它總是試圖使用它,即使它是一種廉價的HTTP代理SOCKS代理。) – annih

+0

當你設置'socksProxyHost'只會發生和'socksProxyPort'。請參閱http://docs.oracle.com/javase/6/docs/technotes/guides/net/proxies.html –

1

你幾乎正確的,但你的任務就更簡單了什麼你解釋。有一種名爲HEAD的特殊HTTP方法。您只需創建您需要的相同請求來檢索您的數據,但使用HEAD而不是GET

1

這聽起來相當不錯,HTTP中的HEAD方法適用於此。

Wikipedia舉例:

HEAD 詢問爲等同於一個將對應於GET請求的響應,但是沒有響應體。這對於檢索寫在響應標題中的元信息是有用的,而不必傳輸整個內容。

相關問題