@Override public RawHttpResponse<Void> send(RawHttpRequest request) throws IOException { Socket socket; try { socket = options.getSocket(request.getUri()); } catch (RuntimeException e) { Throwable cause = e.getCause(); if (cause instanceof IOException) { throw (IOException) cause; } throw e; } OutputStream outputStream = socket.getOutputStream(); options.getExecutorService().submit(() -> { try { request.writeTo(outputStream); } catch (IOException e) { e.printStackTrace(); } }); return options.onResponse(socket, request.getUri(), rawHttp.parseResponse(socket.getInputStream())); }
@Override public RawHttpResponse<Void> send(RawHttpRequest request) throws IOException { Socket socket; try { socket = options.getSocket(request.getUri()); } catch (RuntimeException e) { Throwable cause = e.getCause(); if (cause instanceof IOException) { throw (IOException) cause; } throw e; } OutputStream outputStream = socket.getOutputStream(); options.getExecutorService().submit(() -> { try { request.writeTo(outputStream); } catch (IOException e) { e.printStackTrace(); } }); return options.onResponse(socket, request.getUri(), rawHttp.parseResponse(socket.getInputStream())); }
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); }
RawHttpRequest request = http.parseRequest(client.getInputStream()); System.out.println("REQUEST:\n" + request); if (request.getUri().getPath().equals("/saysomething")) { http.parseResponse("HTTP/1.1 200 OK\n" + "Content-Type: text/plain\n" +