protected String getFullHeaderValue(final Header[] headers) { if (headers == null) { return ""; } final StringBuilder buf = new StringBuilder(""); boolean first = true; for (final Header hdr : headers) { if (!first) { buf.append(", "); } buf.append(hdr.getValue().trim()); first = false; } return buf.toString(); }
/** * Check entry against If-None-Match * @param request The current httpRequest being made * @param entry the cache entry * @return boolean does the etag validator match */ private boolean etagValidatorMatches(final HttpRequest request, final HttpCacheEntry entry) { final Header etagHeader = entry.getFirstHeader(HeaderConstants.ETAG); final String etag = (etagHeader != null) ? etagHeader.getValue() : null; final Header[] ifNoneMatch = request.getHeaders(HeaderConstants.IF_NONE_MATCH); if (ifNoneMatch != null) { for (final Header h : ifNoneMatch) { for (final HeaderElement elt : h.getElements()) { final String reqEtag = elt.toString(); if (("*".equals(reqEtag) && etag != null) || reqEtag.equals(etag)) { return true; } } } } return false; }
@Override public List<Cookie> parse(final Header header, final CookieOrigin origin) throws MalformedCookieException { Args.notNull(header, "Header"); Args.notNull(origin, "Cookie origin"); if (!header.getName().equalsIgnoreCase(SM.SET_COOKIE)) { throw new MalformedCookieException("Unrecognized cookie header '" + header.toString() + "'"); } final HeaderElement[] elems = header.getElements(); return parse(elems, origin); }
Args.notNull(header, "Header"); Args.notNull(origin, "Cookie origin"); HeaderElement[] helems = header.getElements(); boolean versioned = false; boolean netscape = false; buffer.length()); } else { final String s = header.getValue(); if (s == null) { throw new MalformedCookieException("Header value is null"); return netscapeDraft.parse(helems, origin); } else { if (SM.SET_COOKIE2.equals(header.getName())) { return strict.parse(helems, origin); } else {
/** * Checks whether a header is part of the iteration. * * @param index the index of the header to check * * @return {@code true} if the header should be part of the * iteration, {@code false} to skip */ protected boolean filterHeader(final int index) { return (this.headerName == null) || this.headerName.equalsIgnoreCase(this.allHeaders[index].getName()); }
public boolean hasCacheControlDirective(final HttpCacheEntry entry, final String directive) { for (final Header h : entry.getHeaders(HeaderConstants.CACHE_CONTROL)) { for(final HeaderElement elt : h.getElements()) { if (directive.equalsIgnoreCase(elt.getName())) { return true; } } } return false; }
Args.notNull(header, "Header"); Args.notNull(origin, "Cookie origin"); final String headername = header.getName(); if (!headername.equalsIgnoreCase(SM.SET_COOKIE)) { throw new MalformedCookieException("Unrecognized cookie header '" + header.toString() + "'"); final HeaderElement[] helems = header.getElements(); boolean versioned = false; boolean netscape = false; buffer.length()); } else { final String s = header.getValue(); if (s == null) { throw new MalformedCookieException("Header value is null");
/** * Checks whether a header is part of the iteration. * * @param index the index of the header to check * * @return {@code true} if the header should be part of the * iteration, {@code false} to skip */ protected boolean filterHeader(final int index) { if (this.headerName == null) { return true; } // non-header elements, including null, will trigger exceptions final String name = (this.allHeaders.get(index)).getName(); return this.headerName.equalsIgnoreCase(name); }
@Override public List<Cookie> parse( final Header header, final CookieOrigin origin) throws MalformedCookieException { Args.notNull(header, "Header"); Args.notNull(origin, "Cookie origin"); if (!header.getName().equalsIgnoreCase(SM.SET_COOKIE2)) { throw new MalformedCookieException("Unrecognized cookie header '" + header.toString() + "'"); } final HeaderElement[] elems = header.getElements(); return createCookies(elems, adjustEffectiveHost(origin)); }
private boolean from1_0Origin(final HttpResponse response) { final Header via = response.getFirstHeader(HeaderConstants.VIA); if (via != null) { for(final HeaderElement elt : via.getElements()) { final String proto = elt.toString().split("\\s")[0]; if (proto.contains("/")) { return proto.equals("HTTP/1.0"); } else { return proto.equals("1.0"); } } } return HttpVersion.HTTP_1_0.equals(response.getProtocolVersion()); }
private boolean responseAndEntryEtagsDiffer(final HttpResponse response, final HttpCacheEntry entry) { final Header entryEtag = entry.getFirstHeader(HeaderConstants.ETAG); final Header responseEtag = response.getFirstHeader(HeaderConstants.ETAG); if (entryEtag == null || responseEtag == null) { return false; } return (!entryEtag.getValue().equals(responseEtag.getValue())); }
private void removeCacheEntry1xxWarnings(final List<Header> cacheEntryHeaderList, final HttpCacheEntry entry) { final ListIterator<Header> cacheEntryHeaderListIter = cacheEntryHeaderList.listIterator(); while (cacheEntryHeaderListIter.hasNext()) { final String cacheEntryHeaderName = cacheEntryHeaderListIter.next().getName(); if (HeaderConstants.WARNING.equals(cacheEntryHeaderName)) { for (final Header cacheEntryWarning : entry.getHeaders(HeaderConstants.WARNING)) { if (cacheEntryWarning.getValue().startsWith("1")) { cacheEntryHeaderListIter.remove(); } } } } }
final HeaderElement[] encodings; try { encodings = transferEncodingHeader.getElements(); } catch (final ParseException px) { throw new ProtocolException if (HTTP.IDENTITY_CODING.equalsIgnoreCase(transferEncodingHeader.getValue())) { return IDENTITY; } else if ((len > 0) && (HTTP.CHUNK_CODING.equalsIgnoreCase( final Header header = headers[i]; try { contentlen = Long.parseLong(header.getValue()); break; } catch (final NumberFormatException ignore) {
private void removeCacheHeadersThatMatchResponse(final List<Header> cacheEntryHeaderList, final HttpResponse response) { for (final Header responseHeader : response.getAllHeaders()) { final ListIterator<Header> cacheEntryHeaderListIter = cacheEntryHeaderList.listIterator(); while (cacheEntryHeaderListIter.hasNext()) { final String cacheEntryHeaderName = cacheEntryHeaderListIter.next().getName(); if (cacheEntryHeaderName.equals(responseHeader.getName())) { cacheEntryHeaderListIter.remove(); } } } }
protected boolean hasCacheControlParameterFrom(final HttpMessage msg, final String[] params) { final Header[] cacheControlHeaders = msg.getHeaders(HeaderConstants.CACHE_CONTROL); for (final Header header : cacheControlHeaders) { for (final HeaderElement elem : header.getElements()) { for (final String param : params) { if (param.equalsIgnoreCase(elem.getName())) { return true; } } } } return false; }
@Override public boolean expectContinue() { final Header expect = getFirstHeader(HTTP.EXPECT_DIRECTIVE); return expect != null && HTTP.EXPECT_CONTINUE.equalsIgnoreCase(expect.getValue()); }
static MultipartFormEntityBytes buildMultipartFormEntityBytes(JSONObject params) throws ConnectionException { HttpEntity httpEntity = multiPartFormEntity(params); return new MultipartFormEntityBytes( httpEntity.getContentType().getName(), httpEntity.getContentType().getValue(), httpEntityToBytes(httpEntity)); }
final int contentLengthValue = Integer.parseInt(contentLength.getValue()); if (contentLengthValue > this.maxObjectSizeBytes) { return false; final Date date = DateUtils.parseDate(dateHeaders[0].getValue()); if (date == null) { return false; for (final HeaderElement elem : varyHdr.getElements()) { if ("*".equals(elem.getName())) { return false;
/** * Gets the last header with the given name. * * <p>Header name comparison is case insensitive. * * @param name the name of the header to get * @return the last header or {@code null} */ public Header getLastHeader(final String name) { // start at the end of the list and work backwards for (int i = headers.size() - 1; i >= 0; i--) { final Header header = headers.get(i); if (header.getName().equalsIgnoreCase(name)) { return header; } } return null; }