private ClientResponse translate(final ClientRequest requestContext, final HttpResponseStatus status, final HttpResponseHeaders headers, final NonBlockingInputStream entityStream) { final ClientResponse responseContext = new ClientResponse(new Response.StatusType() { @Override public int getStatusCode() { return status.getStatusCode(); } @Override public Response.Status.Family getFamily() { return Response.Status.Family.familyOf(status.getStatusCode()); } @Override public String getReasonPhrase() { return status.getStatusText(); } }, requestContext); for (Map.Entry<String, List<String>> entry : headers.getHeaders().entrySet()) { for (String value : entry.getValue()) { responseContext.getHeaders().add(entry.getKey(), value); } } responseContext.setEntityStream(entityStream); return responseContext; }
@Override public AsyncHandler.STATE onHeadersReceived(final HttpResponseHeaders headers) throws Exception { FluentCaseInsensitiveStringsMap h = headers.getHeaders(); assertEquals("close", h.get("Connection").get(0).toLowerCase()); assertEquals("text/event-stream; charset=utf-8", h.get("Content-Type").get(0).toLowerCase()); return AsyncHandler.STATE.CONTINUE; }
private void calculateTotal(HttpResponseHeaders headers) { String length = headers.getHeaders().getFirstValue("Content-Length"); try { total = Integer.valueOf(length); } catch (Exception e) { total = -1; } }
@Override public final FluentCaseInsensitiveStringsMap getHeaders() { return headers != null ? headers.getHeaders() : new FluentCaseInsensitiveStringsMap(); }
@Override public boolean hasResponseHeaders() { return headers != null && isNonEmpty(headers.getHeaders()); }
@Override protected List<Cookie> buildCookies() { List<Cookie> localCookies = new ArrayList<Cookie>(); for (Map.Entry<String, List<String>> header : headers.getHeaders().entrySet()) { if (header.getKey().equalsIgnoreCase("Set-Cookie")) { // TODO: ask for parsed header List<String> v = header.getValue(); for (String value : v) { localCookies.add(CookieDecoder.decode(value)); } } } return localCookies; } }
@Override protected List<Cookie> buildCookies() { List<Cookie> cookies = new ArrayList<>(); for (Map.Entry<String, List<String>> header : headers.getHeaders().entrySet()) { if (header.getKey().equalsIgnoreCase(HttpHeaders.Names.SET_COOKIE)) { // TODO: ask for parsed header List<String> v = header.getValue(); for (String value : v) { cookies.add(CookieDecoder.decode(value)); } } } return cookies; } }
@Override public STATE onHeadersReceived(HttpResponseHeaders headers) { LOG.trace("Proxying download of {} from Mesos: Headers={}", requestBuilder.build().getUrl(), headers.getHeaders()); return STATE.CONTINUE; }
private void fireHeaders(HttpResponseHeaders headers) { if (listener != null) { listener.onHeaders(uri, new HeaderMap(headers.getHeaders())); } }
@Override public STATE onHeadersReceived(final HttpResponseHeaders headers) throws Exception { fireOnHeaderReceived(headers.getHeaders()); return super.onHeadersReceived(headers); }
@Override public AsyncHandler.STATE onHeadersReceived(HttpResponseHeaders headers) throws Exception { responseBuilder.accumulate(headers); String contentLengthHeader = headers.getHeaders().getFirstValue("Content-Length"); if (contentLengthHeader != null) { if (Long.parseLong(contentLengthHeader) == -1L) { return AsyncHandler.STATE.ABORT; } } if (decoratedAsyncHandler != null) { return decoratedAsyncHandler.onHeadersReceived(headers); } return AsyncHandler.STATE.CONTINUE; }
@Override protected List<Cookie> buildCookies() { List<String> values = headers.getHeaders().get("set-cookie"); if (isNonEmpty(values)) { CookiesBuilder.ServerCookiesBuilder builder = new CookiesBuilder.ServerCookiesBuilder(false, true); for (String header : values) { builder.parse(header); } return convertCookies(builder.build()); } else { return Collections.emptyList(); } }
@Override public boolean hasResponseHeaders() { return headers != null && isNonEmpty(headers.getHeaders()); }
/** * {@inheritDoc} */ @Override public STATE onHeadersReceived(HttpResponseHeaders headers) throws Exception { logger.trace("Headers received {}", headers); TransportsUtil.invokeFunction(HEADERS, decoders, functions, Map.class, headers.getHeaders(), HEADERS.name(), resolver); return STATE.CONTINUE; }
@Override public STATE onHeadersReceived(HttpResponseHeaders content) throws Exception { responseHeaders.set(content.getHeaders()); return STATE.ABORT; }
@Override public STATE onHeadersReceived(HttpResponseHeaders content) throws Exception { responseHeaders.set(content.getHeaders()); return STATE.CONTINUE; }
@Override public void store( final HttpResponseHeaders headers ) { final FluentCaseInsensitiveStringsMap fluentHeaders = headers.getHeaders(); final List<String> foundCookies = fluentHeaders.get( "Set-Cookie" ); if ( foundCookies != null ) for ( final String cookie : foundCookies ) cookies.add( CookieDecoder.decode( cookie ) ); }
/** * {@inheritDoc} */ @Override public STATE onHeadersReceived(HttpResponseHeaders headers) throws Exception { List<String> ct = headers.getHeaders().get("Content-Type"); if (ct == null || ct.size() == 0 || !ct.get(0).contains("text/event-stream")) { status = Socket.STATUS.ERROR; throw new TransportNotSupported(500, "Invalid Content-Type" + ct); } return super.onHeadersReceived(headers); }
@Override public STATE onHeadersReceived(final HttpResponseHeaders headers) throws Exception { fireOnHeaderReceived(headers.getHeaders()); return super.onHeadersReceived(headers); }
public <T> FilterContext<T> filter(FilterContext<T> ctx) throws FilterException { if (ctx.getResponseHeaders() != null && ctx.getResponseHeaders().getHeaders().getFirstValue("Ping").equals("Pong") && replay.getAndSet(false)) { Request request = new RequestBuilder(ctx.getRequest()).addHeader("Ping", "Pong").build(); return new FilterContext.FilterContextBuilder<T>().asyncHandler(ctx.getAsyncHandler()).request(request).replayRequest(true).build(); } return ctx; }