@SuppressWarnings("unchecked") private RawHttpResponse<?> route(RawHttpRequest request) throws IOException { RawHttpResponse<Void> response; try { response = router.route(request).map(res -> (RawHttpResponse<Void>) res) .orElseGet(() -> options.notFoundResponse(request).orElseGet(() -> HttpResponses.getNotFoundResponse(request.getStartLine().getHttpVersion()))); } catch (Exception e) { e.printStackTrace(); response = options.serverErrorResponse(request).orElseGet(() -> HttpResponses.getServerErrorResponse(request.getStartLine().getHttpVersion())); } return options.onResponse(request, response); }
@SuppressWarnings("unchecked") private RawHttpResponse<?> route(RawHttpRequest request) throws IOException { RawHttpResponse<Void> response; try { response = router.route(request).map(res -> (RawHttpResponse<Void>) res) .orElseGet(() -> options.notFoundResponse(request).orElseGet(() -> HttpResponses.getNotFoundResponse(request.getStartLine().getHttpVersion()))); } catch (Exception e) { e.printStackTrace(); response = options.serverErrorResponse(request).orElseGet(() -> HttpResponses.getServerErrorResponse(request.getStartLine().getHttpVersion())); } return options.onResponse(request, response); }
@Override public Optional<RawHttpResponse<?>> route(RawHttpRequest request) { final Optional<RawHttpResponse<?>> response; if (request.getMethod().equals("GET")) { String path = request.getStartLine().getUri() .normalize().getPath() .replaceAll(DIR_BACK_PATTERN, ""); // provide the index.html file at the root path if (path.isEmpty() || path.equals("/")) { path = "index.html"; } Optional<FileResult> resource = fileLocator.find(path, request.getHeaders().get("Accept")); response = resource.map(fileResult -> HttpResponses.getOkResponse(request.getStartLine().getHttpVersion()) .withHeaders(fileResult.contentTypeHeader) .withBody(new FileBody(fileResult.file))); } else { response = Optional.of(HttpResponses.getMethodNotAllowedResponse(request.getStartLine().getHttpVersion())); } return response; }
client.getInputStream(), ((InetSocketAddress) client.getRemoteSocketAddress()).getAddress()); HttpVersion httpVersion = request.getStartLine().getHttpVersion(); Optional<String> connectionOption = request.getHeaders().getFirst("Connection");
client.getInputStream(), ((InetSocketAddress) client.getRemoteSocketAddress()).getAddress()); HttpVersion httpVersion = request.getStartLine().getHttpVersion(); Optional<String> connectionOption = request.getHeaders().getFirst("Connection");
public RawHttpResponse<CloseableHttpResponse> send(RawHttpRequest request) throws IOException { RequestBuilder builder = RequestBuilder.create(request.getMethod()); builder.setUri(request.getUri()); builder.setVersion(toProtocolVersion(request.getStartLine().getHttpVersion())); request.getHeaders().getHeaderNames().forEach((name) -> request.getHeaders().get(name).forEach(value -> builder.addHeader(new BasicHeader(name, value)))); request.getBody().ifPresent(b -> builder.setEntity(new InputStreamEntity(b.asRawStream()))); CloseableHttpResponse response = httpClient.execute(builder.build()); RawHttpHeaders headers = readHeaders(response); StatusLine statusLine = adaptStatus(response.getStatusLine()); @Nullable LazyBodyReader body; if (response.getEntity() != null) { FramedBody framedBody = http.getFramedBody(statusLine, headers); body = new LazyBodyReader(framedBody, response.getEntity().getContent()); } else { body = null; } return new RawHttpResponse<>(response, request, statusLine, headers, body); }