@Override public InputStream getInputStream() { if (m_cachedStream != null) { /* * This preserves the semantics of the method on the base class * since Jetty will return a closed input stream if you invoke this * method more than once. */ return super.getInputStream(); } // await a response up to a timeout. try { ensureResponse(); } catch (IOException e) { throw new RuntimeException(e); } // request the input stream. m_cachedStream = super.getInputStream(); return m_cachedStream; }
@Override public void onContent(Response response, ByteBuffer content) { // ignore empty blocks if (content.remaining() == 0) { return; } super.onContent(response, content); } };
InputStreamResponseListener listener = new InputStreamResponseListener(); Response response = listener.get(5, TimeUnit.SECONDS); try (InputStream input = listener.getInputStream())
response = listener.get(httpClient.getIdleTimeout(), MILLISECONDS); T value; try { InputStream inputStream = listener.getInputStream(); try { jettyResponse = new JettyResponse(response, inputStream);
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 onContent(Response response, ByteBuffer content) { int remaining = content.remaining(); byte[] bytes = new byte[remaining]; content.get(bytes); LOG.debug("Queuing {}/{} bytes", bytes, bytes.length); queue.offer(bytes); long newLength = length.addAndGet(remaining); while (newLength >= maxBufferSize) { LOG.debug("Queued bytes limit {}/{} exceeded, waiting", newLength, maxBufferSize); if (!await()) break; newLength = length.get(); LOG.debug("Queued bytes limit {}/{} exceeded, woken up", newLength, maxBufferSize); } }
InputStreamResponseListener listener = new InputStreamResponseListener(); httpRequest.send(listener); Response httpResponse = listener.get(TIMEOUT, TimeUnit.MILLISECONDS); try (InputStream responseContent = listener.getInputStream()) { IOUtils.copy(responseContent, response.getOutputStream());
response = listener.get(httpClient.getIdleTimeout(), MILLISECONDS); T value; try { jettyResponse = new JettyResponse(response, listener.getInputStream()); value = responseHandler.handle(request, jettyResponse);
@Override public void onContent(Response response, ByteBuffer content) { int remaining = content.remaining(); byte[] bytes = new byte[remaining]; content.get(bytes); LOG.debug("Queuing {}/{} bytes", bytes, bytes.length); queue.offer(bytes); long newLength = length.addAndGet(remaining); while (newLength >= maxBufferSize) { LOG.debug("Queued bytes limit {}/{} exceeded, waiting", newLength, maxBufferSize); if (!await()) break; newLength = length.get(); LOG.debug("Queued bytes limit {}/{} exceeded, woken up", newLength, maxBufferSize); } }
InputStreamResponseListener listener = new InputStreamResponseListener(); httpRequest.send(listener); Response httpResponse = listener.get(TIMEOUT, TimeUnit.MILLISECONDS); try (InputStream responseContent = listener.getInputStream()) { IOUtils.copy(responseContent, response.getOutputStream());
@Override public void onContent(Response response, ByteBuffer content) { // ignore empty blocks if (content.remaining() == 0) { return; } super.onContent(response, content); } };
InputStreamResponseListener listener = new InputStreamResponseListener(); request.timeout(connectionTimeout, TimeUnit.MILLISECONDS); request.send(listener); Response response = listener.get(connectionTimeout, TimeUnit.MILLISECONDS); try (InputStream responseContent = listener.getInputStream())
@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); } }
new InputStreamResponseListener(); InputStream iss = failure == Failure.PARTIAL_REQUEST ? response = listener.get(Long.MAX_VALUE, TimeUnit.SECONDS); } catch (ExecutionException | InterruptedException | TimeoutException e) { try (InputStream responseContent = listener.getInputStream()) { switch (failure) { case PARTIAL_RESPONSE: