Example usage for org.apache.http.impl.cookie DateUtils parseDate

List of usage examples for org.apache.http.impl.cookie DateUtils parseDate

Introduction

In this page you can find the example usage for org.apache.http.impl.cookie DateUtils parseDate.

Prototype

public static Date parseDate(final String dateValue) throws DateParseException 

Source Link

Document

Parses a date value.

Usage

From source file:com.stargame.ad.util.cache.AbCacheHeaderParser.java

/**
 * ???.//w w w.ja va  2 s  . c  o m
 * 
 * @param response
 *            the response
 * @return the ab cache. entry
 */
public static AbDiskCache.Entry parseCacheHeaders(AbCacheResponse response) {

    Map<String, String> headers = response.headers;

    long serverTimeMillis = 0;
    long expiredTimeMillis = 0;
    long maxAge = 0;
    boolean hasCacheControl = false;

    String serverEtag = null;
    String headerValue;

    // ??
    headerValue = headers.get("Date");
    if (headerValue != null) {
        try {
            serverTimeMillis = DateUtils.parseDate(headerValue).getTime();
        } catch (Exception e) {
            e.printStackTrace();
            serverTimeMillis = System.currentTimeMillis();
        }
    }
    // Cache-Control?
    headerValue = headers.get("Cache-Control");
    if (headerValue != null) {
        hasCacheControl = true;
        String[] tokens = headerValue.split(",");
        for (int i = 0; i < tokens.length; i++) {
            String token = tokens[i].trim();
            if (token.equals("no-cache") || token.equals("no-store")) {
                return null;
            } else if (token.startsWith("max-age=")) {
                try {
                    maxAge = Long.parseLong(token.substring(8));
                } catch (Exception e) {
                }
            } else if (token.equals("must-revalidate") || token.equals("proxy-revalidate")) {
                maxAge = 0;
            }
        }
    }

    serverEtag = headers.get("ETag");

    if (hasCacheControl) {
        expiredTimeMillis = serverTimeMillis + maxAge;
    }

    AbDiskCache.Entry entry = new AbDiskCache.Entry();
    entry.data = response.data;
    entry.etag = serverEtag;
    entry.serverTimeMillis = serverTimeMillis;
    entry.expiredTimeMillis = expiredTimeMillis;
    entry.responseHeaders = headers;

    return entry;
}

From source file:org.mcsoxford.rss.Dates.java

/**
 * Parses string as an RFC 822 date/time.
 * /* www .j  a va2  s.  co  m*/
 * @throws RSSFault if the string is not a valid RFC 822 date/time
 */
static java.util.Date parseRfc822(String date) {
    /*
     try {
       return RFC822.parse(date);
     } catch (ParseException e) {
       //throw new RSSFault(e);
       return null;   
     }
     */
    try {
        // The apache one's more reliable.. Android below 4.2 has some issue parsing dates with SimpleDateFormat 
        return DateUtils.parseDate(date);
    } catch (DateParseException dpe) {
        throw new RSSFault(dpe);
    }
}

From source file:com.ab.cache.AbCacheHeaderParser.java

/**
 * ???./*from  ww w  .ja  va  2 s . c om*/
 *
 * @param response the response
 * @return the ab cache. entry
 */
public static AbDiskCache.Entry parseCacheHeaders(AbCacheResponse response) {

    Map<String, String> headers = response.headers;

    long serverTimeMillis = 0;
    long expiredTimeMillis = 0;
    long maxAge = 0;
    boolean hasCacheControl = false;

    String serverEtag = null;
    String headerValue;

    //??
    headerValue = headers.get("Date");
    if (headerValue != null) {
        try {
            serverTimeMillis = DateUtils.parseDate(headerValue).getTime();
        } catch (Exception e) {
            e.printStackTrace();
            serverTimeMillis = System.currentTimeMillis();
        }
    }
    //Cache-Control?
    headerValue = headers.get("Cache-Control");
    if (headerValue != null) {
        hasCacheControl = true;
        String[] tokens = headerValue.split(",");
        for (int i = 0; i < tokens.length; i++) {
            String token = tokens[i].trim();
            if (token.equals("no-cache") || token.equals("no-store")) {
                return null;
            } else if (token.startsWith("max-age=")) {
                try {
                    maxAge = Long.parseLong(token.substring(8));
                } catch (Exception e) {
                }
            } else if (token.equals("must-revalidate") || token.equals("proxy-revalidate")) {
                maxAge = 0;
            }
        }
    }

    serverEtag = headers.get("ETag");

    if (hasCacheControl) {
        expiredTimeMillis = serverTimeMillis + maxAge;
    }

    AbDiskCache.Entry entry = new AbDiskCache.Entry();
    entry.data = response.data;
    entry.etag = serverEtag;
    entry.serverTimeMillis = serverTimeMillis;
    entry.expiredTimeMillis = expiredTimeMillis;
    entry.responseHeaders = headers;

    return entry;
}

From source file:com.micro.cache.MicroCacheHeaderParser.java

/**
 * ???./*from  w w  w  .  j  a  v a 2  s.com*/
 *
 * @param response the response
 * @return the ab cache. entry
 */
public static MicroDiskCache.Entry parseCacheHeaders(MicroCacheResponse response) {

    Map<String, String> headers = response.headers;

    long serverTimeMillis = 0;
    long expiredTimeMillis = 0;
    long maxAge = 0;
    boolean hasCacheControl = false;

    String serverEtag = null;
    String headerValue;

    //??
    headerValue = headers.get("Date");
    if (headerValue != null) {
        try {
            serverTimeMillis = DateUtils.parseDate(headerValue).getTime();
        } catch (Exception e) {
            e.printStackTrace();
            serverTimeMillis = System.currentTimeMillis();
        }
    }
    //Cache-Control?
    headerValue = headers.get("Cache-Control");
    if (headerValue != null) {
        hasCacheControl = true;
        String[] tokens = headerValue.split(",");
        for (int i = 0; i < tokens.length; i++) {
            String token = tokens[i].trim();
            if (token.equals("no-cache") || token.equals("no-store")) {
                return null;
            } else if (token.startsWith("max-age=")) {
                try {
                    maxAge = Long.parseLong(token.substring(8));
                } catch (Exception e) {
                }
            } else if (token.equals("must-revalidate") || token.equals("proxy-revalidate")) {
                maxAge = 0;
            }
        }
    }

    serverEtag = headers.get("ETag");

    if (hasCacheControl) {
        expiredTimeMillis = serverTimeMillis + maxAge;
    }

    MicroDiskCache.Entry entry = new MicroDiskCache.Entry();
    entry.data = response.data;
    entry.etag = serverEtag;
    entry.serverTimeMillis = serverTimeMillis;
    entry.expiredTimeMillis = expiredTimeMillis;
    entry.responseHeaders = headers;

    return entry;
}

From source file:cn.org.eshow.framwork.cache.AbCacheHeaderParser.java

/**
 * ???.// w  ww . j  a v  a2  s .co m
 * @param response
 * @param cacheMaxAge  
 * @return
 */
public static AbDiskCache.Entry parseCacheHeaders(AbCacheResponse response, long cacheMaxAge) {

    //{andbase=HTTP/1.1 200 OK, ETag="620e0d-dae-4f5d6331a2300", Date=Fri, 26 Jun 2015 02:17:54 GMT, 
    //Content-Length=3502, Last-Modified=Sun, 30 Mar 2014 17:23:56 GMT, X-Android-Received-Millis=1435285072907, 
    //Keep-Alive=timeout=15, max=100, Content-Type=image/png, Connection=Keep-Alive, Accept-Ranges=bytes, 
    //Server=Apache, Cache-Control=max-age=600000, X-Android-Sent-Millis=1435285072809}
    Map<String, String> headers = response.headers;

    long serverTimeMillis = 0;
    long expiredTimeMillis = 0;
    long maxAge = 0;
    boolean hasCacheControl = false;
    String serverEtag = null;
    String headerValue;

    //??
    headerValue = headers.get("Date");
    if (headerValue != null) {
        try {
            serverTimeMillis = DateUtils.parseDate(headerValue).getTime();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    //????
    if (serverTimeMillis == 0 || serverTimeMillis < System.currentTimeMillis()) {
        serverTimeMillis = System.currentTimeMillis();
    }

    //Cache-Control?
    headerValue = headers.get("Cache-Control");
    if (headerValue != null) {
        hasCacheControl = true;
        String[] tokens = headerValue.split(",");
        for (int i = 0; i < tokens.length; i++) {
            String token = tokens[i].trim();
            if (token.equals("no-cache") || token.equals("no-store")) {
                break;
            } else if (token.startsWith("max-age=")) {
                try {
                    maxAge = Long.parseLong(token.substring(8));
                } catch (Exception e) {
                }
            } else if (token.equals("must-revalidate") || token.equals("proxy-revalidate")) {
                maxAge = 0;
            }
        }
    }

    //?Header?app
    if (maxAge == 0 && cacheMaxAge > 0) {
        hasCacheControl = true;
        maxAge = cacheMaxAge;
    }

    serverEtag = headers.get("ETag");

    if (hasCacheControl) {
        expiredTimeMillis = serverTimeMillis + maxAge;
    }

    AbDiskCache.Entry entry = new AbDiskCache.Entry();
    entry.data = response.data;
    entry.etag = serverEtag;
    entry.serverTimeMillis = serverTimeMillis;
    entry.expiredTimeMillis = expiredTimeMillis;
    entry.responseHeaders = headers;

    return entry;

}

From source file:com.gistlabs.mechanize.cache.HttpCacheFilterTest.java

@SuppressWarnings("deprecation")
@Test// ww w  . j  av a 2s. co m
public void confirmDateUtil() throws DateParseException {
    Date date = DateUtils.parseDate("Sun, 09 Aug 2009 01:56:14 GMT");
    assertEquals("9 Aug 2009 01:56:14 GMT", date.toGMTString());
}

From source file:org.wrml.runtime.syntax.DateSyntaxHandler.java

@Override
public Date parseSyntacticText(final String dateString) {

    try {//w w  w.  j av  a2 s . co  m
        return DateUtils.parseDate(dateString);
    } catch (final DateParseException e) {
        throw new SyntaxHandlerException("Failed to transform String value \"" + dateString + "\" to a Date", e,
                this);
    }
}

From source file:org.gradle.api.internal.artifacts.repositories.transport.http.HttpResponseResource.java

public long getLastModified() {
    Header responseHeader = response.getFirstHeader("last-modified");
    if (responseHeader == null) {
        return 0;
    }/*w w w.ja v a 2s  .  c  o m*/
    try {
        return DateUtils.parseDate(responseHeader.getValue()).getTime();
    } catch (Exception e) {
        return 0;
    }
}

From source file:com.mothsoft.alexis.util.NetworkingUtil.java

public static HttpClientResponse get(final URL url, final String etag, final Date lastModifiedDate)
        throws IOException {

    final HttpGet get = new HttpGet(url.toExternalForm());

    get.addHeader("Accept-Charset", "UTF-8");

    if (etag != null) {
        get.addHeader("If-None-Match", etag);
    }//  w  ww.j av a  2s . co m

    if (lastModifiedDate != null) {
        get.addHeader("If-Modified-Since", DateUtils.formatDate(lastModifiedDate));
    }

    int statusCode = -1;
    String responseEtag = null;
    Date responseLastModifiedDate = null;

    final HttpClient client = getClient();
    HttpResponse response = client.execute(get);
    statusCode = response.getStatusLine().getStatusCode();

    InputStream is = null;
    Charset charset = null;

    if (statusCode == 304) {
        responseEtag = etag;
        responseLastModifiedDate = lastModifiedDate;
    } else {
        final Header responseEtagHeader = response.getFirstHeader("Etag");
        if (responseEtagHeader != null) {
            responseEtag = responseEtagHeader.getValue();
        }

        final Header lastModifiedDateHeader = response.getFirstHeader("Last-Modified");
        if (lastModifiedDateHeader != null) {
            try {
                responseLastModifiedDate = DateUtils.parseDate(lastModifiedDateHeader.getValue());
            } catch (DateParseException e) {
                responseLastModifiedDate = null;
            }
        }

        final HttpEntity entity = response.getEntity();

        // here's where to do intelligent checking of content type, content
        // length, etc.
        if (entity.getContentLength() > MAX_CONTENT_LENGTH) {
            get.abort();
            throw new IOException("Exceeded maximum content length, length is: " + entity.getContentLength());
        }

        is = entity.getContent();
        charset = getCharset(entity);
    }
    return new HttpClientResponse(get, statusCode, responseEtag, responseLastModifiedDate, is, charset);
}

From source file:com.gistlabs.mechanize.integration.test.ApacheImageCacheIT.java

protected Date date(final Resource res1) throws DateParseException {
    return DateUtils.parseDate(res1.getResponse().getFirstHeader("Date").getValue());
}