2011-10-19 4 views
3

HEADメソッドHttpClientを使用して、ヘッダフィールドを取得し、サーバファイルの「最終変更日」をチェックする必要があります。
私はそれを得ることができません、ヘッダーフィールドを取得する方法を知っている場合は、返信してください。 比較のためにStringオブジェクトに "last-modified"ヘッダーを取得する方法。すべてのヘッダを取得するために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()); 
} 

答えて

1

のHttpClient documentation

HeadMethod head = new HeadMethod("http://jakarta.apache.org"); 

// Excecute the method here with your HttpClient 

Header[] headers = head.getResponseHeaders(); 
String lastModified = head.getResponseHeader("last-modified").getValue(); 

あなたがあなた自身のエラー処理を追加する必要がありますから:

は、ここに私のコードです。 HttpClientを4.5に

+0

はい、これは書きですが、私はそれを使用したときに、私は次のエラーを取得します。 ........ HeadMethodを型に解決することはできません。この問題を解決する方法を教えてください。 –

+0

それは書き込みですが、私はこれを使用したときにエラーが発生しました。 HeadMethodは型に解決できません。どのように私はこの問題を克服しましたか。返信してください。 –

+0

@ShashiShirke、Apache commons httpクライアントライブラリをダウンロードしてプロジェクトに組み込む必要があります。 – Nate

2

あなたが使用します。

final HttpHead headMethod = new HttpHead(fileUri); 
final Header header = headMethod.getFirstHeader("last-modified"); 
final String lastModified = header.getValue(); 
1

それはこのようなものを使用するのがベストでしょう:

CloseableHttpClient client = HttpClientBuilder.create().build(); 
HttpHead head = new HttpHead(url); 
String lastModified; 
try { 
    CloseableHttpResponse response = client.execute(head); 
    int statusCode = response.getStatusLine().getStatusCode(); 
    if (statusCode == 200) { 
     Header header = headMethod.getFirstHeader("last-modified"); 
     lastModified = header.getValue(); 
    } 
} catch (IOException ignored) { 
} 
関連する問題