List of usage examples for org.springframework.http.server.reactive ServerHttpResponse setStatusCode
boolean setStatusCode(@Nullable HttpStatus status);
From source file:org.springframework.http.codec.ResourceHttpMessageWriter.java
@Override @SuppressWarnings("unchecked") public Mono<Void> write(Publisher<? extends Resource> inputStream, @Nullable ResolvableType actualType, ResolvableType elementType, @Nullable MediaType mediaType, ServerHttpRequest request, ServerHttpResponse response, Map<String, Object> hints) { HttpHeaders headers = response.getHeaders(); headers.set(HttpHeaders.ACCEPT_RANGES, "bytes"); List<HttpRange> ranges; try {/*from w ww.j a va 2 s .c om*/ ranges = request.getHeaders().getRange(); } catch (IllegalArgumentException ex) { response.setStatusCode(HttpStatus.REQUESTED_RANGE_NOT_SATISFIABLE); return response.setComplete(); } return Mono.from(inputStream).flatMap(resource -> { if (ranges.isEmpty()) { return writeResource(resource, elementType, mediaType, response, hints); } response.setStatusCode(HttpStatus.PARTIAL_CONTENT); List<ResourceRegion> regions = HttpRange.toResourceRegions(ranges, resource); MediaType resourceMediaType = getResourceMediaType(mediaType, resource, hints); if (regions.size() == 1) { ResourceRegion region = regions.get(0); headers.setContentType(resourceMediaType); long contentLength = lengthOf(resource); if (contentLength != -1) { long start = region.getPosition(); long end = start + region.getCount() - 1; end = Math.min(end, contentLength - 1); headers.add("Content-Range", "bytes " + start + '-' + end + '/' + contentLength); headers.setContentLength(end - start + 1); } return writeSingleRegion(region, response, hints); } else { String boundary = MimeTypeUtils.generateMultipartBoundaryString(); MediaType multipartType = MediaType.parseMediaType("multipart/byteranges;boundary=" + boundary); headers.setContentType(multipartType); Map<String, Object> allHints = Hints.merge(hints, ResourceRegionEncoder.BOUNDARY_STRING_HINT, boundary); return encodeAndWriteRegions(Flux.fromIterable(regions), resourceMediaType, response, allHints); } }); }
From source file:org.springframework.web.cors.reactive.DefaultCorsProcessor.java
/** * Invoked when one of the CORS checks failed. */// ww w. ja v a 2 s . co m protected void rejectRequest(ServerHttpResponse response) { response.setStatusCode(HttpStatus.FORBIDDEN); logger.debug("Invalid CORS request"); }
From source file:org.springframework.web.server.adapter.HttpWebHandlerAdapter.java
private Mono<Void> handleFailure(ServerHttpRequest request, ServerHttpResponse response, Throwable ex) { if (isDisconnectedClientError(ex)) { if (disconnectedClientLogger.isTraceEnabled()) { disconnectedClientLogger.trace("Looks like the client has gone away", ex); } else if (disconnectedClientLogger.isDebugEnabled()) { disconnectedClientLogger.debug("Looks like the client has gone away: " + ex + " (For a full stack trace, set the log category '" + DISCONNECTED_CLIENT_LOG_CATEGORY + "' to TRACE level.)"); }// w w w.jav a 2 s . c o m return Mono.empty(); } if (response.setStatusCode(HttpStatus.INTERNAL_SERVER_ERROR)) { logger.error("Failed to handle request [" + request.getMethod() + " " + request.getURI() + "]", ex); return Mono.empty(); } // After the response is committed, propagate errors to the server.. HttpStatus status = response.getStatusCode(); logger.error("Unhandled failure: " + ex.getMessage() + ", response already set (status=" + status + ")"); return Mono.error(ex); }