private static String decodeContent(Headers headers, InputStream inputStream) throws IOException { List<String> contentEncoding = headers.get("Content-encoding"); InputStream input = inputStream; try { if (contentEncoding != null && !contentEncoding.isEmpty()) { String encoding = contentEncoding.get(0); if (SUPPORTED_COMPRESSION_ENCODINGS.contains(encoding)) { input = new GZIPInputStream(inputStream); } else if (!encoding.equals("identity")) { throw new IOException( "The request has the following unsupported HTTP content encoding: " + encoding); } } return new String(ByteStreams.toByteArray(input), StandardCharsets.UTF_8); } catch (IOException e) { throw new IOException("Exception encountered when decoding request content.", e); } }
private URI getBaseUri(final HttpExchange exchange, final String decodedBasePath, final String scheme) { final URI baseUri; try { final List<String> hostHeader = exchange.getRequestHeaders().get("Host"); if (hostHeader != null) { baseUri = new URI(scheme + "://" + hostHeader.get(0) + decodedBasePath); } else { final InetSocketAddress addr = exchange.getLocalAddress(); baseUri = new URI(scheme, null, addr.getHostName(), addr.getPort(), decodedBasePath, null, null); } } catch (final URISyntaxException ex) { throw new IllegalArgumentException(ex); } return baseUri; }
while (iter.hasNext()) { String key = iter.next(); List values = requestHeaders.get(key); String s = key + " = " + values.toString() + "\n"; responseBody.write(s.getBytes());
List<String> hostHeader = exchange.getRequestHeaders().get("Host"); if (hostHeader != null) { StringBuilder sb = new StringBuilder(scheme);
protected static boolean shouldUseCompression(HttpExchange exchange) { List<String> encodingHeaders = exchange.getRequestHeaders().get("Accept-Encoding"); if (encodingHeaders == null) return false; for (String encodingHeader : encodingHeaders) { String[] encodings = encodingHeader.split(","); for (String encoding : encodings) { if (encoding.trim().toLowerCase().equals("gzip")) { return true; } } } return false; }
public HttpMessage(HttpExchange httpExchange) { this.body = IOUtils.toByteArray(httpExchange.getRequestBody()); ImmutableMultimap.Builder<String, String> headersBuilder = ImmutableMultimap.builder(); Set<String> headerNames = httpExchange.getRequestHeaders().keySet(); headerNames.stream() .forEach(headerName -> headersBuilder.putAll(headerName, httpExchange.getRequestHeaders().get(headerName))); this.headers = headersBuilder.build(); uri = httpExchange.getRequestURI().getPath(); queryParams = queryToMap(httpExchange.getRequestURI().getQuery()); }
private void handleClientStart(HttpExchange t, ConsoleProxyClient viewer, String title, String guest) throws IOException { List<String> languages = t.getRequestHeaders().get("Accept-Language"); String response = viewer.onAjaxClientStart(title, languages, guest); Headers hds = t.getResponseHeaders(); hds.set("Content-Type", "text/html"); hds.set("Cache-Control", "no-cache"); hds.set("Cache-Control", "no-store"); t.sendResponseHeaders(200, response.length()); OutputStream os = t.getResponseBody(); try { os.write(response.getBytes()); } finally { os.close(); } }
/** * @return The request host. */ public String getHost() { return headers.get("Host").get(0); }
/** * @return The request user-agent. */ public String getUserAgent() { return headers.get("User-agent").get(0); }
/** * Returns an header value. * * @param header The header name * @return A list with values. */ public List<String> getHeader(String header) { return Optional.ofNullable(headers.get(header)).orElse(Collections.emptyList()); }
/** * Returns true if the 'X-Requested-With' header field is 'XMLHttpRequest'. * Indicating that the request was made by a client library such as jQuery. * * @return True if the 'X-Requested-With' header field is 'XMLHttpRequest'. */ public boolean isXHR() { return headers.containsKey("X-Requested-With") && !headers.get("X-Requested-With").isEmpty() && headers.get("X-Requested-With").get(0).equals("XMLHttpRequest"); }
static String getHeader(HttpExchange exchange,String header){ Headers h=exchange.getRequestHeaders(); List<String> values=h.get(header); if(values==null || values.size()==0) return null; return values.get(0); } }
@Override public Iterator<String> getRequestHeaders(String name) throws IOException { List<String> headers = httpExchange.getRequestHeaders().get(name); return headers != null ? headers.iterator() : Collections.<String>emptyList().iterator(); }
@Override public Iterator<String> getRequestHeaders(String name) throws IOException { List<String> headers = httpExchange.getRequestHeaders().get(name); return headers != null ? headers.iterator() : Collections.<String>emptyList().iterator(); }
@Override public List<String> getRequestHeaderValues(String headerName) { return httpExchange.getRequestHeaders().get(headerName); }
@Override public List<String> getRequestHeaderValues(String headerName) { return httpExchange.getRequestHeaders().get(headerName); }
private Authentication getAuthorization(Headers requestHeaders) { List<String> authorization = requestHeaders.get("Authorization"); if (Verify.isEmpty(authorization)) { return null; } String authLine = authorization.get(0); if (authLine.contains("Basic ")) { return new BasicAuthentication(authLine.split(" ")[1], dbSystem.getDatabase()); } return null; }
private static void addHeaders(final Request.Builder builder, final HttpExchange httpExchange) { final Headers requestHeaders = httpExchange.getRequestHeaders(); for (final String key : requestHeaders.keySet()) { for (final String value : requestHeaders.get(key)) { builder.header(key, value); } } } }
private static void addHeaders(final Request.Builder builder, final HttpExchange httpExchange) { final Headers requestHeaders = httpExchange.getRequestHeaders(); for (final String key : requestHeaders.keySet()) { for (final String value : requestHeaders.get(key)) { builder.header(key, value); } } } }
public void handle( HttpExchange t ) throws IOException { String contentType = null; final List<String> strings = t.getRequestHeaders().get( "Content-Type" ); if ( strings.size() > 0 ) { contentType = strings.get( 0 ); } if ( contentType == null ) { testResponse( t ); } else if ( contentType.equals( "application/java-archive" ) ) { binaryResponse( t ); } else { testResponse( t ); } }