HttpClient httpClient = new HttpClient(); httpClient.start(); Request request = httpClient.newRequest("http://localhost:8080/line-lengths"); final OutputStreamContentProvider contentProvider = new OutputStreamContentProvider(); InputStreamResponseListener responseListener = new InputStreamResponseListener(); request.content(contentProvider).method(HttpMethod.POST).send(responseListener); //async request httpClient.getExecutor().execute(new Runnable() { public void run() { try (OutputStream outputStream = contentProvider.getOutputStream()) { writeRequestBodyTo(outputStream); //writing to stream in another thread } catch (IOException e) { e.printStackTrace(); } } }); readResponseBodyFrom(responseListener.getInputStream()); //reading response httpClient.stop();
InputStreamResponseListener listener = new InputStreamResponseListener();
InputStreamResponseListener listener = new InputStreamResponseListener();
InputStreamResponseListener listener = new InputStreamResponseListener();
new InputStreamResponseListener(); InputStream iss = failure == Failure.PARTIAL_REQUEST ?
InputStreamResponseListener listener = new InputStreamResponseListener();
@Override public InputStream sendMessage(byte[] message) throws IOException { try { Request request = httpClient.newRequest(url) .method(HttpMethod.POST) .header(HttpHeader.CONTENT_TYPE, "application/octet-stream") .header(HttpHeader.ACCEPT_ENCODING, "gzip") .content(new BytesContentProvider(message)); addSessionCookie(request); InputStreamResponseListener listener = new InputStreamResponseListener(); request.send(listener); /** * Waits for the given timeout for the response to be available, then returns it. * The wait ends as soon as all the HTTP headers have been received, without waiting for the content. */ Response response = listener.get(readTimeout, TimeUnit.SECONDS); if (response.getStatus() >= 300) { throw new IOException( "Did not receive successful HTTP response: status code = " + response.getStatus() + ", status message = [" + response.getReason() + "]"); } return listener.getInputStream(); } catch (Exception e) { if (e instanceof InterruptedException) { Thread.currentThread().interrupt(); } throw new IOException("Exception while sending message", e); } }