@Override public Map<String, String> toSingleValueMap() { Map<String, String> singleValueMap = new LinkedHashMap<>(this.headers.size()); this.headers.forEach(values -> singleValueMap.put(values.getHeaderName().toString(), values.getFirst())); return singleValueMap; }
@Override public Map<String, String> toSingleValueMap() { Map<String, String> singleValueMap = new LinkedHashMap<>(this.headers.size()); this.headers.forEach(values -> singleValueMap.put(values.getHeaderName().toString(), values.getFirst())); return singleValueMap; }
static void copyHeaders(final HeaderMap to, final HeaderMap from) { long f = from.fastIterateNonEmpty(); HeaderValues values; while (f != -1L) { values = from.fiCurrent(f); if(!to.contains(values.getHeaderName())) { //don't over write existing headers, normally the map will be empty, if it is not we assume it is not for a reason to.putAll(values.getHeaderName(), values); } f = from.fiNextNonEmpty(f); } }
@Override public HeaderMap getTrailers() { HeaderMap attachment = exchange.getAttachment(HttpAttachments.RESPONSE_TRAILERS); Supplier<HeaderMap> supplier = exchange.getAttachment(HttpAttachments.RESPONSE_TRAILER_SUPPLIER); if(attachment != null && supplier == null) { return attachment; } else if(attachment == null && supplier != null) { return supplier.get(); } else if(attachment != null) { HeaderMap supplied = supplier.get(); for(HeaderValues k : supplied) { attachment.putAll(k.getHeaderName(), k); } return attachment; } else { return null; } } });
/** * put headers info to headerMap * @param headers types: HeaderMap, get from response or request */ private void dumpHeaders(HeaderMap headers) { headers.forEach((headerValues) -> headerValues.forEach((headerValue) -> { String headerName = headerValues.getHeaderName().toString(); if(!config.getRequestFilteredHeaders().contains(headerName)) { headerMap.put(headerName, headerValue); } })); }
private void dumpRequestBody(HttpServerExchange exchange, StringBuilder sb) { try { FormData formData = exchange.getAttachment(FormDataParser.FORM_DATA); if (formData != null) { sb.append("body=\n"); for (String formField : formData) { Deque<FormData.FormValue> formValues = formData.get(formField); sb.append(formField) .append("="); for (FormData.FormValue formValue : formValues) { sb.append(formValue.isFileItem() ? "[file-content]" : formValue.getValue()); sb.append("\n"); if (formValue.getHeaders() != null) { sb.append("headers=\n"); for (HeaderValues header : formValue.getHeaders()) { sb.append("\t") .append(header.getHeaderName()).append("=").append(header.getFirst()).append("\n"); } } } } } } catch (Exception e) { throw new RuntimeException(e); } }
HeaderMap supplied = supplier.get(); for(HeaderValues k : supplied) { attachment.putAll(k.getHeaderName(), k); for (HeaderValues trailer : trailers) { for (String val : trailer) { trailer.getHeaderName().appendTo(lastChunkBuffer); lastChunkBuffer.put((byte) ':'); lastChunkBuffer.put((byte) ' ');
@Override public void handleRequest(final HttpServerExchange exchange) throws Exception { if(exchange.getRequestMethod().equals(Methods.TRACE)) { exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "message/http"); StringBuilder body = new StringBuilder("TRACE "); body.append(exchange.getRequestURI()); if(!exchange.getQueryString().isEmpty()) { body.append('?'); body.append(exchange.getQueryString()); } body.append(' '); body.append(exchange.getProtocol().toString()); body.append("\r\n"); for(HeaderValues header : exchange.getRequestHeaders()) { for(String value : header) { body.append(header.getHeaderName()); body.append(": "); body.append(value); body.append("\r\n"); } } body.append("\r\n"); exchange.getResponseSender().send(body.toString()); } else { handler.handleRequest(exchange); } }
sb.append(" header=" + header.getHeaderName() + "=" + value + "\n");
sb.append(" header=" + header.getHeaderName() + "=" + value + "\n");
switch (state) { case STATE_HDR_NAME: { final HttpString headerName = headerValues.getHeaderName(); length = headerName.length(); while (charIndex < length) {
boolean skip = false; if (firstPass) { if (values.getHeaderName().byteAt(0) != ':') { skip = true; if (values.getHeaderName().byteAt(0) == ':') { skip = true; if(SKIP.contains(values.getHeaderName())) { for (int i = 0; i < values.size(); ++i) { HttpString headerName = values.getHeaderName(); int required = 11 + headerName.length(); //we use 11 to make sure we have enough room for the variable length itegers
HeaderValues headerValues = headers.fiCurrent(fiCookie); HttpString header = headerValues.getHeaderName(); int headerSize = header.length(); int valueIdx = 0;
cr.setProtocol(Protocols.HTTP_1_1); for (HeaderValues header : stream.getHeaders()) { cr.getRequestHeaders().putAll(header.getHeaderName(), header);
requestHeaders.putAll(hv.getHeaderName(), hv);
public SavedRequest(byte[] data, int dataLength, HttpString method, String requestPath, HeaderMap headerMap) { this.data = data; this.dataLength = dataLength; this.method = method; this.requestPath = requestPath; for(HeaderValues val : headerMap) { this.headerMap.put(val.getHeaderName(), new ArrayList<>(val)); } }
@Override public Set<String> keySet() { Set<String> result = new HashSet<String>(); for (HeaderValues value : headerMap) { result.add(value.getHeaderName().toString()); } return result; }
@Override public Set<String> getHeaderNames() { Set<String> names = new HashSet<>(); for(HeaderValues name : headers) { names.add(name.getHeaderName().toString()); } return names; }
private Map<String, String> toHeadersMap(HeaderMap headerMap) { return stream(spliteratorUnknownSize(headerMap.iterator(), 0), false) .collect(toMap( h -> h.getHeaderName().toString(), h -> h.getFirst())); } }
static void copyHeaders(final HeaderMap to, final HeaderMap from) { long f = from.fastIterateNonEmpty(); HeaderValues values; while (f != -1L) { values = from.fiCurrent(f); if(!to.contains(values.getHeaderName())) { //don't over write existing headers, normally the map will be empty, if it is not we assume it is not for a reason to.putAll(values.getHeaderName(), values); } f = from.fiNextNonEmpty(f); } }