Refine search
private static void writeResponse(HttpExchange exchange, Response response) { exchange.getResponseHeaders().set("Content-type", "application/json; charset=UTF-8"); OutputStream outputStream = exchange.getResponseBody(); try { exchange.getResponseHeaders().add("Connection", "close"); exchange.sendResponseHeaders(response.code(), response.body().length()); outputStream.write(response.body().getBytes(StandardCharsets.UTF_8)); outputStream.close(); } catch (IOException e) { log.log(Level.WARNING, "IOException encountered when sending response.", e); } }
private EurekaHttpRequest mapToEurekaHttpRequest(HttpExchange httpExchange) { Headers exchangeHeaders = httpExchange.getRequestHeaders(); Map<String, String> headers = new HashMap<>(); for(String key: exchangeHeaders.keySet()) { headers.put(key, exchangeHeaders.getFirst(key)); } return new EurekaHttpRequest(httpExchange.getRequestMethod(), httpExchange.getRequestURI(), headers); }
String requestMethod = exchange.getRequestMethod(); if (requestMethod.equalsIgnoreCase("GET")) { Headers responseHeaders = exchange.getResponseHeaders(); responseHeaders.set("Content-Type", "text/plain"); exchange.sendResponseHeaders(200, 0); OutputStream responseBody = exchange.getResponseBody(); Headers requestHeaders = exchange.getRequestHeaders(); Set<String> keySet = requestHeaders.keySet(); Iterator<String> iter = keySet.iterator(); while (iter.hasNext()) { String key = iter.next(); List values = requestHeaders.get(key); String s = key + " = " + values.toString() + "\n"; responseBody.write(s.getBytes()); responseBody.close();
Headers h = httpExchange.getRequestHeaders(); String encoding; if (h.containsKey("Content-type")) { String[] charsetPair = Arrays.stream(h.getFirst("Content-type").split(";")) .map(x -> x.split("=")) .filter(x -> x.length > 0 && "charset".equals(x[0])) String text = IOUtils.slurpReader(IOUtils.encodedInputStreamReader(httpExchange.getRequestBody(), encoding)); String inputSerializerName = props.getProperty("inputSerializer", ProtobufAnnotationSerializer.class.getName()); AnnotationSerializer serializer = MetaClass.create(inputSerializerName).createInstance(); Pair<Annotation, InputStream> pair = serializer.read(httpExchange.getRequestBody()); return pair.first; default:
public void handle(HttpExchange t) throws IOException { try { Thread.currentThread().setName("JPG Thread " + Thread.currentThread().getId() + " " + t.getRemoteAddress()); s_logger.debug("ScreenHandler " + t.getRequestURI()); s_logger.debug(t.getRequestURI() + "Process time " + (System.currentTimeMillis() - startTick) + " ms"); } catch (IllegalArgumentException e) { String response = "Bad query string"; s_logger.error("Unexpected exception while handing thumbnail request, ", e); String queries = t.getRequestURI().getQuery(); Map<String, String> queryMap = getQueryMap(queries); int width = 0; byte[] bs = bos.toByteArray(); Headers hds = t.getResponseHeaders(); hds.set("Content-Type", "image/jpeg"); hds.set("Cache-Control", "no-cache"); hds.set("Cache-Control", "no-store"); t.sendResponseHeaders(200, bs.length); OutputStream os = t.getResponseBody(); os.write(bs); os.close(); s_logger.error("Cannot get console, sent error JPG response for " + t.getRequestURI());
@Override public void handle(HttpExchange exch) throws IOException { String response; int status; switch (exch.getRequestURI().getPath()) { case "/valid": response = "A test response"; status = 200; break; case "/delayed": waitFor(100); response = "A delayed test response"; status = 200; break; case "/redirect": response = "A redirect"; status = 301; exch.getResponseHeaders().add("Location", format("http://localhost:%s/valid", serverPort)); break; default: response = ""; status = 404; } exch.sendResponseHeaders(status, response.length()); OutputStream os = exch.getResponseBody(); os.write(response.getBytes()); os.close(); }
@Override public void handle( HttpExchange httpExchange ) throws IOException { Headers h = httpExchange.getResponseHeaders(); h.add( "Content-Type", "application/octet-stream" ); httpExchange.sendResponseHeaders( 200, 0 ); InputStream is = httpExchange.getRequestBody(); OutputStream os = httpExchange.getResponseBody(); int inputChar = -1; while ( ( inputChar = is.read() ) >= 0 ) { os.write( inputChar ); } is.close(); os.flush(); os.close(); httpExchange.close(); } } );
@Override public void handle(HttpExchange httpExchange) throws IOException { wasInvoked = true; HttpsExchange exchange = (HttpsExchange) httpExchange; for (Map.Entry<String, List<String>> entry : headers.entrySet()) { for (String value : entry.getValue()) { exchange.getResponseHeaders().add(entry.getKey(), value); } } exchange.getResponseHeaders().add("Access-Control-Allow-Origin", "*"); exchange.sendResponseHeaders(200, responseBody.length()); OutputStream os = exchange.getResponseBody(); os.write(responseBody.getBytes()); os.flush(); os.close(); httpExchange.close(); } }
URI exchangeUri = exchange.getRequestURI(); String decodedBasePath = exchange.getHttpContext().getPath(); if (decodedBasePath.equals(exchangeUri.getPath())) { List<String> hostHeader = exchange.getRequestHeaders().get("Host"); if (hostHeader != null) { StringBuilder sb = new StringBuilder(scheme); sb.append("://").append(hostHeader.get(0)).append(decodedBasePath); baseUri = new URI(sb.toString()); } else { InetSocketAddress addr = exchange.getLocalAddress(); baseUri = new URI(scheme, null, addr.getHostName(), addr.getPort(), decodedBasePath, null, null); } catch (RuntimeException e) { e.printStackTrace(); exchange.getResponseHeaders().clear(); exchange.sendResponseHeaders(500, -1); } catch (IOException ex) { ex.printStackTrace(); exchange.getResponseHeaders().clear(); exchange.sendResponseHeaders(500, -1); throw ex; exchange.getResponseBody().flush(); exchange.close();
@Override public void handle(HttpExchange httpExchange) throws IOException { // Return a simple text message that says pong. httpExchange.getResponseHeaders().set("Content-type", "text/plain"); String response = "live\n"; httpExchange.sendResponseHeaders(HTTP_OK, response.getBytes().length); httpExchange.getResponseBody().write(response.getBytes()); httpExchange.close(); } } // end static class LiveHandler
@Override public void handle(HttpExchange exchange) throws IOException { String requestMethod = exchange.getRequestMethod(); if (requestMethod.equalsIgnoreCase("GET")) { Headers responseHeaders = exchange.getResponseHeaders(); responseHeaders.set("Content-Type", "text/plain"); exchange.sendResponseHeaders(200, 0); String csv; String path = exchange.getRequestURI().getPath(); if (StringUtils.endsWithIgnoreCase(path, "memory")) { memoryStat.add(Runtime.getRuntime().totalMemory() - Runtime.getRuntime().freeMemory()); csv = memoryStat.exportCSV(null).toString(); } else { csv = trace.getStatisticsCSV(); } OutputStream responseBody = exchange.getResponseBody(); responseBody.write(csv.getBytes()); responseBody.close(); } } }
/** * Handles HTTP requests: checks that a request is a HTTP GET and that url path is the expected one. * If all checks are passed it writes pre-configured file content to the HTTP response body. * * @param exchange Wrapper above the HTTP request and response. */ @Override public void handle(HttpExchange exchange) throws IOException { assert "GET".equalsIgnoreCase(exchange.getRequestMethod()); assert urlPath == null || urlPath.equals(exchange.getRequestURI().toString()); exchange.getResponseHeaders().set("Content-Type", "application/octet-stream"); exchange.sendResponseHeaders(200, 0); try (OutputStream resBody = exchange.getResponseBody()) { resBody.write(GridTestUtils.readFile(downloadFile)); } } }
private void binaryResponse( HttpExchange t ) throws IOException { int boonSize = -1; final List<String> strings = t.getRequestHeaders().get( "Boon-Size" ); if ( strings != null && strings.size() > 0 ) { boonSize = Integer.parseInt( strings.get( 0 ) ); } boonSize = boonSize == -1 ? 19 : boonSize; t.getResponseHeaders().put( "Content-Type", Lists.list( "application/java-archive" ) ); t.sendResponseHeaders( 200, boonSize ); OutputStream os = t.getResponseBody(); byte[] buffer = new byte[ boonSize ]; int value = 0; for ( int index = 0; index < boonSize; index++, value++ ) { buffer[ index ] = ( byte ) value; if ( value == Byte.MAX_VALUE ) { value = 0; } } os.write( buffer ); os.close(); }
props = getProperties(httpExchange); if ("GET".equalsIgnoreCase(httpExchange.getRequestMethod())) { } else if (httpExchange.getRequestMethod().equals("HEAD")) { httpExchange.getRequestBody().close(); httpExchange.getResponseHeaders().add("Transfer-encoding", "chunked"); httpExchange.sendResponseHeaders(200, -1); httpExchange.close(); contentType += ";charset=" + options.encoding; httpExchange.getResponseHeaders().add("Content-type", contentType); httpExchange.getResponseHeaders().add("Content-length", Integer.toString(response.length)); httpExchange.sendResponseHeaders(HTTP_OK, response.length); httpExchange.getResponseBody().write(response); httpExchange.close(); if (completedAnnotation != null && ! StringUtils.isNullOrEmpty(props.getProperty("annotators"))) {
ret += exchange.getRequestMethod() + " " + exchange.getRequestURI() + " " + exchange.getProtocol() + "\n"; Headers headers = exchange.getRequestHeaders(); if (!headers.isEmpty()) { ret += "\n"; for (String key : headers.keySet()) { ret += key + ": "; boolean semiColon = false; for (String value : headers.get(key)) { if (semiColon) { ret += "; "; if (headers.get("Content-Length") != null) { InputStream in = exchange.getRequestBody(); ret += "\n"; headers = exchange.getResponseHeaders(); headers.set("Content-Type", "text/plain"); exchange.sendResponseHeaders(200, ret.length()); OutputStream out = exchange.getResponseBody(); out.write(ret.getBytes()); exchange.close();
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; }
private void handleLogRequest(HttpExchange httpExchange, Map<String, String> parameters) throws IOException { // used so the client (especially the browser add-ons) can report internal issues: String message = parameters.get("message"); if (message != null && message.length() > 250) { message = message.substring(0, 250) + "..."; } ServerTools.print("Log message from client: " + message + " - User-Agent: " + httpExchange.getRequestHeaders().getFirst("User-Agent")); String response = "OK"; httpExchange.sendResponseHeaders(HttpURLConnection.HTTP_OK, response.getBytes(ENCODING).length); httpExchange.getResponseBody().write(response.getBytes(ENCODING)); }
@Override public void handle(HttpExchange httpExchange) throws IOException { if ("wsdl".equals(httpExchange.getRequestURI().getQuery())) { sendWSDL(httpExchange); } else { SOAPMessage request = parse(httpExchange.getRequestBody()); SOAPMessage confirmation = events.incomingRequest(new SOAPMessageInfo(httpExchange.getRemoteAddress(), request)); OutputStream responseStream = httpExchange.getResponseBody(); try { httpExchange.getResponseHeaders().add("Content-Type", "application/soap+xml; charset=utf-8"); httpExchange.sendResponseHeaders(200, 0); confirmation.writeTo(responseStream); } catch (SOAPException e) { httpExchange.sendResponseHeaders(500, 0); logger.warn("handle() confirmation.writeTo failed", e); } responseStream.close(); } }
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()); }
public void doHandle(HttpExchange t) throws Exception { String path = t.getRequestURI().getPath(); int i = path.indexOf("/", 1); String cmd = path.substring(i + 1); s_logger.info("Get CMD request for " + cmd); if (cmd.equals("getstatus")) { ConsoleProxyClientStatsCollector statsCollector = ConsoleProxy.getStatsCollector(); Headers hds = t.getResponseHeaders(); hds.set("Content-Type", "text/plain"); t.sendResponseHeaders(200, 0); OutputStreamWriter os = new OutputStreamWriter(t.getResponseBody(),"UTF-8"); statsCollector.getStatsReport(os); os.close(); } } }