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; }
@Override public OutputStream getOutputStream(final int contentLength) throws IOException { return streamContentProvider.getOutputStream(); } });
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();
@Override public void write(byte[] b, int off, int len) throws IOException { OutputStreamContentProvider.this.write(ByteBuffer.wrap(b, off, len)); }
@Override public void close() throws IOException { OutputStreamContentProvider.this.close(); } }
OutputStreamContentProvider content = new OutputStreamContentProvider(); FutureResponseListener listener = new FutureResponseListener(webReq); try (OutputStream output = content.getOutputStream()) { if (req.getPartList() == null || req.getPartList().size() <= 0) { if (req.getContentType() != null) {
@Override public void write(byte[] b, int off, int len) throws IOException { OutputStreamContentProvider.this.write(ByteBuffer.wrap(b, off, len)); }
@Override public void close() throws IOException { OutputStreamContentProvider.this.close(); } }
private void processContent(final ClientRequest clientRequest, final ContentProvider entity) throws IOException { if (entity == null) { return; } final OutputStreamContentProvider streamContentProvider = (OutputStreamContentProvider) entity; try (final OutputStream output = streamContentProvider.getOutputStream()) { clientRequest.writeEntity(); } }
@Override public void write(byte[] b, int off, int len) throws IOException { OutputStreamContentProvider.this.write(ByteBuffer.wrap(b, off, len)); flush(); }
@Override public void close() throws IOException { OutputStreamContentProvider.this.close(); } }
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; }
@Override public OutputStream getOutputStream(final int contentLength) throws IOException { return streamContentProvider.getOutputStream(); } });
private void processContent(final ClientRequest clientRequest, final ContentProvider entity) throws IOException { if (entity == null) { return; } final OutputStreamContentProvider streamContentProvider = (OutputStreamContentProvider) entity; try (final OutputStream output = streamContentProvider.getOutputStream()) { clientRequest.writeEntity(); } }