@VisibleForTesting static HttpResponse.Builder toStyxResponse(io.netty.handler.codec.http.HttpResponse nettyResponse) { HttpResponse.Builder responseBuilder = response(nettyResponse.getStatus()); stream(nettyResponse.headers().spliterator(), false) .filter(header -> !isCookieHeader(header.getKey())) .forEach(header -> responseBuilder.addHeader(header.getKey(), header.getValue())); nettyResponse.headers().getAll(SET_COOKIE).stream() .map(ClientCookieDecoder.LAX::decode) .map(NettyToStyxResponsePropagator::nettyCookieToStyxCookie) .forEach(responseBuilder::addCookie); return responseBuilder; }
private HttpResponse readResponse(HttpURLConnection connection) throws IOException { int status = connection.getResponseCode(); HttpResponse.Builder response = response(HttpResponseStatus.valueOf(status)); try (InputStream stream = getInputStream(connection, status)) { byte[] content = toByteArray(stream); if (content.length > 0) { response.body(content); } connection.getHeaderFields().forEach((key, value) -> { if (!isNullOrEmpty(key)) { response.header(key, JOINER_ON_COMMA.join(value)); } }); } return response.build(); }
@Override public Observable<HttpResponse> handle(HttpRequest request) { if (!method.equals(request.method())) { return Observable.just( response(METHOD_NOT_ALLOWED) .body(errorBody) .build()); } return httpHandler.handle(request); } }
/** * Creates a builder with status set to 200 OK. * * @return {@code this} */ public static Builder response() { return response(OK); }
@Override public HttpResponse doHandle(HttpRequest request) { return response(NOT_FOUND) .body(NOT_FOUND_MESSAGE) .build(); } }
HttpResponse toResponse() { return response(OK) .header(CONTENT_TYPE, contentType) .header(CONTENT_LENGTH, contentLength) .body(content) .build(); } }
@Override public HttpResponse doHandle(HttpRequest request) { return response(OK) .header(CONTENT_TYPE, this.contentType.toString()) .header(CONTENT_LENGTH, this.contentLength) .body(this.body) .build(); } }