@Override public InetSocketAddress getRemoteAddress() { return this.request.remoteAddress(); }
private static String getScheme(HttpServerRequest request) { return request.scheme(); }
@Override protected void initServer() { this.reactorHandler = createHttpHandlerAdapter(); this.reactorServer = reactor.netty.http.server.HttpServer.create() .tcpConfiguration(server -> server.host(getHost())) .port(getPort()); }
@Override protected void applyStatusCode() { Integer statusCode = getStatusCodeValue(); if (statusCode != null) { this.response.status(statusCode); } }
private static HttpHeaders initHeaders(HttpServerRequest channel) { NettyHeadersAdapter headersMap = new NettyHeadersAdapter(channel.requestHeaders()); return new HttpHeaders(headersMap); }
@Override public String getMethodValue() { return this.request.method().name(); }
private static String resolveRequestUri(HttpServerRequest request) { String uri = request.uri(); for (int i = 0; i < uri.length(); i++) { char c = uri.charAt(i); if (c == '/' || c == '?' || c == '#') { break; } if (c == ':' && (i + 2 < uri.length())) { if (uri.charAt(i + 1) == '/' && uri.charAt(i + 2) == '/') { for (int j = i + 3; j < uri.length(); j++) { c = uri.charAt(j); if (c == '/' || c == '?' || c == '#') { return uri.substring(j); } } return ""; } } } return uri; }
@Override protected Mono<Void> writeWithInternal(Publisher<? extends DataBuffer> publisher) { return this.response.send(toByteBufs(publisher)).then(); }
@Override public Flux<DataBuffer> getBody() { return this.request.receive().retain().map(this.bufferFactory::wrap); }
public ReactorServerHttpResponse(HttpServerResponse response, DataBufferFactory bufferFactory) { super(bufferFactory, new HttpHeaders(new NettyHeadersAdapter(response.responseHeaders()))); Assert.notNull(response, "HttpServerResponse must not be null"); this.response = response; }
@Override public Mono<Void> writeWith(Path file, long position, long count) { return doCommit(() -> this.response.sendFile(file, position, count).then()); }
@Override protected Mono<Void> writeAndFlushWithInternal(Publisher<? extends Publisher<? extends DataBuffer>> publisher) { return this.response.sendGroups(Flux.from(publisher).map(this::toByteBufs)).then(); }
@Override protected void applyStatusCode() { Integer statusCode = getStatusCodeValue(); if (statusCode != null) { this.response.status(statusCode); } }
@Override public String getMethodValue() { return this.request.method().name(); }
@Override public Flux<DataBuffer> getBody() { return this.request.receive().retain().map(this.bufferFactory::wrap); }
@Override public InetSocketAddress getRemoteAddress() { return this.request.remoteAddress(); }
private static String getScheme(HttpServerRequest request) { return request.scheme(); }
@Override @SuppressWarnings("ConstantConditions") public HttpStatus getStatusCode() { HttpStatus httpStatus = super.getStatusCode(); if (httpStatus == null) { HttpResponseStatus status = this.response.status(); httpStatus = status != null ? HttpStatus.resolve(status.code()) : null; } return httpStatus; }