2009-09-25 7 views
5

ウェブサイト上のバイナリファイル(例:イメージ)がダウンロードせずに変更されたかどうかをプログラムで確認するにはどうすればよいですか? HTTPメソッドを使用して(この場合はC#で)完全にダウンロードする前にチェックする方法はありますか?ウェブサイト上のバイナリファイル(例:イメージ)がダウンロードせずに変更されたかどうかをプログラムで確認するにはどうすればよいですか?

+0

私はそうは思わない。実際のファイルをリクエストすると、オクテットストリームが取得されます。 AFAIKあなたが必要としている方法でファイルの属性を調べることを可能にする仕様の呼び出しはありませんが、私は方法があるかどうかを知りたいと思っています。 – Joe

答えて

6

HEADでファイルが変更されているかどうかを確認できます。

その後は、レスポンスヘッダは、Webサーバのサポート場合のLast-Modified、またはETagを含むことが返されました。

+0

合意したETagsは、サポートされているこの問題に対する最良の解決策です。 –

+0

はい、それは私がやった解決策のアプローチです。私はETagがそれを使用しています、そうでなければLast-Modifiedにフォールバックします。 –

5

HEADリクエストを実行して、最後に変更されたdatetime値とcontent-lengthを確認できます。

+0

内容の長さに言及してくれてありがとう:サーバーが正しく設定されていない場合の大きなフォールバック –

9

実際にはHEADリクエスト(GETではなく)を発行した後にLast-Modifiedヘッダーを探したいとします。私はWebClienthereを介してHEADを取得するためのコードを書きました。

+1

サイトが正しくキャッシュされる必要があるにもかかわらず、すべてのサイトが正しいLast-Modifiedヘッダーを提供するわけではありません。 –

+0

しかし、サーバーがルールに従って動作しない場合は、あなたができることはあまりありません。 – Bryan

+1

サーバーが正しいキャッシュ制御ヘッダー(Last-Modifiedなど)を提供していない場合は、ファイルをダウンロードして内容を比較する以外に、特定の時間以降にファイルが変更されたかどうかを判断する方法がありません。 –

関連する問題