2011-10-19 4 views
2

こんにちは、私はサーバーからファイルをダウンロードしています。 HEADメソッドを使用してメタ情報を取得する必要があります。 andybodyは、HEADメソッドを実装して、「最終変更日」の日付と変更後の日付を取得する手助けをしています。httpclientのHEADメソッドを実装する方法

HttpClient client= new DefaultHttpClient(); 
//HttpGet get = new HttpGet(url); 
HttpHead method = new HttpHead(url); 
HttpResponse response= client.execute(method); 

Header[] s=response.getAllHeaders(); 
System.out.println("THe header from the httpclient:"); 
for(int i=0; i < s.length; i++){ 
    Header hd = s[i];  
    System.out.println("Header Name: "+hd.getName() 
     + "  " + " Header Value: " + hd.getValue()); 
} 

//here I have to implement the HEAD method 
+0

コード例では、既に完全なHEADを実行しています。これにはすべてのヘッダー情報が含まれます。それ以降、なぜHEADを追加したいのですか?それは冗長なようだ。最後に変更された/変更されたものは既に存在しています。 – Abel

+2

ああ、これはどんな言語ですか?私はC#を前提としていましたが、これらのクラスはApacheクラス、つまりおそらくJavaであるようです。更新してください。 – Abel

答えて

2

HEADとGETメソッドの違いは応答が体を含まないということです。

は、ここに私のコードです。それ以外の場合は、2つは同じです。つまり、HEADメソッドはすべてのヘッダーを取得します。 ではなく、が1つのヘッダーのデータを取得するために使用され、ただちにすべてのヘッダーを取得します。

HEADリクエストを実行したため、コード例ではすでにすべてのヘッダーがあります。 for-loopでは、ヘッダーからすべてのデータを出力します。 last-modifiedが存在しない場合、サーバーはこのリソースに対してそれを提供しませんでした。

if-modified-sinceは、応答ヘッダーフィールドではなく、要求ヘッダーフィールドであることに注意してください。変更日以降にリソースが返されるようにサーバーに指示するように設定できます。サーバー上でリソースが変更されたときにリソースを取得するだけの場合は、if-modified-sinceヘッダーが設定されたGET要求を使用できます。サーバーがこのヘッダーをサポートしているかどうかを確認するには、次のツールをチェックしてください。http://www.feedthebot.com/tools/if-modified/

関連する問題