public Headers asCacheable() { return HeaderUtils.cleanForCaching(this); }
public static String toGMTString(LocalDateTime time) { DateTimeFormatter formatter = getFormatter(); return formatter.format(time); }
public boolean isCachable() { return HeaderUtils.hasCacheableHeaders(this); }
public Headers withExpires(LocalDateTime expires) { return set(HeaderUtils.toHttpDate(HeaderConstants.EXPIRES, expires)); }
public static long getHeaderAsDate(Header header) { try { Optional<LocalDateTime> dateTime = fromHttpDate(header); if (dateTime.isPresent()) { return dateTime.get().toInstant(ZoneOffset.UTC).toEpochMilli(); } } catch (Exception e) { return -1; } return -1; }
public Parameter(String name, String value) { super(name, HeaderUtils.removeQuotes(value)); }
public static Header toHttpDate(String headerName, LocalDateTime time) { return new Header(headerName, toGMTString(time)); }
public static Optional<LocalDateTime> fromHttpDate(Header header) { if (header == null) { return null; } if ("0".equals(header.getValue().trim())) { return Optional.of(LocalDateTime.of(LocalDate.of(1970, 1, 1), LocalTime.of(0, 0, 0, 0))); } return parseGMTString(header.getValue()); }
public Headers withLastModified(LocalDateTime lm) { return set(HeaderUtils.toHttpDate(HeaderConstants.LAST_MODIFIED, lm)); }
public static CacheItem parse(Properties object) { Optional<LocalDateTime> time = HeaderUtils.fromHttpDate(new Header("cache-time", object.getProperty("cache-time"))); Status status = Status.valueOf(NumberUtils.toInt(object.getProperty("status"), 200)); Headers headers = Headers.parse(object.getProperty("headers")); Optional<Payload> p = Optional.empty(); if (object.containsKey("file")) { p = Optional.of(new FilePayload(new File(object.getProperty("file")), headers.getContentType().get())); } return new DefaultCacheItem(new HTTPResponse(p, status, headers), time.get()); }
public Directive(final String name, String value, List<Parameter> parameters) { super(name, HeaderUtils.removeQuotes(value)); this.parameters = Objects.requireNonNull(parameters); }
public Headers withDate(LocalDateTime dt) { return set(HeaderUtils.toHttpDate(HeaderConstants.DATE, dt)); }
public Directive(final String name, String value) { this(name, HeaderUtils.removeQuotes(value), Collections.<Parameter>emptyList()); }
public static Optional<LocalDateTime> parseGMTString(String value) { DateTimeFormatter formatter = getFormatter(); try { return Optional.of(LocalDateTime.from(formatter.parse(value))); } catch (DateTimeParseException ignore) { } return Optional.empty(); }
public Properties toProperties() { Properties object = new Properties(); object.setProperty("cache-time", HeaderUtils.toHttpDate("cache-time", item.getCachedTime()).getValue()); HTTPResponse response = item.getResponse(); object.setProperty("status", String.valueOf(response.getStatus().getCode())); if (response.hasPayload()) { FilePayload payload = (FilePayload) response.getPayload().get(); object.setProperty("file", payload.getFile().getAbsolutePath()); } object.setProperty("headers", response.getHeaders().toString()); return object; }
public void write(PrintStream stream, HTTPRequest request) { writeRequestLine(stream, request); Headers all = request.getAllHeaders(); all = all.add(HeaderUtils.toHttpDate("Date", LocalDateTime.now())); all = all.add("Connection", "close"); writeHeaders(stream, all); if (request.hasPayload()) { writeBody(stream, request.getPayload()); } stream.print("\r\n"); stream.flush(); }
/** * Converts the Conditionals into real headers. * @return real headers. */ public Headers toHeaders() { Headers headers = new Headers(); if (!getMatch().isEmpty()) { headers = headers.add(new Header(HeaderConstants.IF_MATCH, buildTagHeaderValue(getMatch()))); } if (!getNoneMatch().isEmpty()) { headers = headers.add(new Header(HeaderConstants.IF_NONE_MATCH, buildTagHeaderValue(getNoneMatch()))); } if (modifiedSince.isPresent()) { headers = headers.set(HeaderUtils.toHttpDate(HeaderConstants.IF_MODIFIED_SINCE, modifiedSince.get())); } if (unModifiedSince.isPresent()) { headers = headers.set(HeaderUtils.toHttpDate(HeaderConstants.IF_UNMODIFIED_SINCE, unModifiedSince.get())); } return headers; }