使用HttpClient获取URL状态代码的最快方法是什么

Pec*_*277 7 java performance httpclient http-status-codes

使用HttpClient获取URL状态的最快方法是什么?我不想下载页面/文件,我只想知道页面/文件是否存在?(如果是重定向,我希望它遵循重定向)

lw0*_*lw0 13

以下是我从HttpClient获取状态代码的方法,我非常喜欢:

public boolean exists(){
    CloseableHttpResponse response = null;
    try {
        CloseableHttpClient client = HttpClients.createDefault();
        HttpHead headReq = new HttpHead(this.uri);                      
        response = client.execute(headReq);         
        StatusLine sl = response.getStatusLine();           
        switch (sl.getStatusCode()) {
            case 404:  return false;                     
            default: return true;                     
        }           

    } catch (Exception e) {
        log.error("Error in HttpGroovySourse : "+e.getMessage(), e );
    } finally {

        try {
            response.close();
        } catch (Exception e) {
            log.error("Error in HttpGroovySourse : "+e.getMessage(), e );
        }
    }       

    return false;
}
Run Code Online (Sandbox Code Playgroud)


Ole*_*ksi 6

使用HEAD呼叫.它基本上是一个GET调用,服务器不返回正文.他们的文档示例:

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

// Retrieve just the last modified header value.
String lastModified = head.getResponseHeader("last-modified").getValue();
Run Code Online (Sandbox Code Playgroud)