private ContentProvider getStreamProvider(final ClientRequest clientRequest) { final Object entity = clientRequest.getEntity(); if (entity == null) { return null; } final OutputStreamContentProvider streamContentProvider = new OutputStreamContentProvider(); clientRequest.setStreamProvider(new OutboundMessageContext.StreamProvider() { @Override public OutputStream getOutputStream(final int contentLength) throws IOException { return streamContentProvider.getOutputStream(); } }); return streamContentProvider; }
private ContentProvider getStreamProvider(final ClientRequest clientRequest) { final Object entity = clientRequest.getEntity(); if (entity == null) { return null; } final OutputStreamContentProvider streamContentProvider = new OutputStreamContentProvider(); clientRequest.setStreamProvider(new OutboundMessageContext.StreamProvider() { @Override public OutputStream getOutputStream(final int contentLength) throws IOException { return streamContentProvider.getOutputStream(); } }); return streamContentProvider; }
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();
OutputStreamContentProvider content = new OutputStreamContentProvider(); FutureResponseListener listener = new FutureResponseListener(webReq);