Example usage for org.springframework.http ReactiveHttpOutputMessage getHeaders

List of usage examples for org.springframework.http ReactiveHttpOutputMessage getHeaders

Introduction

In this page you can find the example usage for org.springframework.http ReactiveHttpOutputMessage getHeaders.

Prototype

HttpHeaders getHeaders();

Source Link

Document

Return the headers of this message.

Usage

From source file:org.springframework.http.codec.EncoderHttpMessageWriter.java

@SuppressWarnings("unchecked")
@Override//w  ww.ja  v  a2s.co m
public Mono<Void> write(Publisher<? extends T> inputStream, ResolvableType elementType,
        @Nullable MediaType mediaType, ReactiveHttpOutputMessage message, Map<String, Object> hints) {

    MediaType contentType = updateContentType(message, mediaType);

    Flux<DataBuffer> body = this.encoder.encode(inputStream, message.bufferFactory(), elementType, contentType,
            hints);

    if (inputStream instanceof Mono) {
        HttpHeaders headers = message.getHeaders();
        if (headers.getContentLength() < 0 && !headers.containsKey(HttpHeaders.TRANSFER_ENCODING)) {
            return Mono.from(body).flatMap(dataBuffer -> {
                headers.setContentLength(dataBuffer.readableByteCount());
                return message.writeWith(Mono.just(dataBuffer));
            });
        }
    }

    return (isStreamingMediaType(contentType) ? message.writeAndFlushWith(body.map(Flux::just))
            : message.writeWith(body));
}

From source file:org.springframework.http.codec.EncoderHttpMessageWriter.java

@Nullable
private MediaType updateContentType(ReactiveHttpOutputMessage message, @Nullable MediaType mediaType) {
    MediaType result = message.getHeaders().getContentType();
    if (result != null) {
        return result;
    }/*from  www  . j a va  2 s .c o m*/
    MediaType fallback = this.defaultMediaType;
    result = (useFallback(mediaType, fallback) ? fallback : mediaType);
    if (result != null) {
        result = addDefaultCharset(result, fallback);
        message.getHeaders().setContentType(result);
    }
    return result;
}

From source file:org.springframework.http.codec.ResourceHttpMessageWriter.java

private Mono<Void> writeResource(Resource resource, ResolvableType type, @Nullable MediaType mediaType,
        ReactiveHttpOutputMessage message, Map<String, Object> hints) {

    HttpHeaders headers = message.getHeaders();
    MediaType resourceMediaType = getResourceMediaType(mediaType, resource, hints);
    headers.setContentType(resourceMediaType);

    if (headers.getContentLength() < 0) {
        long length = lengthOf(resource);
        if (length != -1) {
            headers.setContentLength(length);
        }//from   www. ja  v  a2 s.  co  m
    }

    return zeroCopy(resource, null, message, hints).orElseGet(() -> {
        Mono<Resource> input = Mono.just(resource);
        DataBufferFactory factory = message.bufferFactory();
        Flux<DataBuffer> body = this.encoder.encode(input, factory, type, resourceMediaType, hints);
        return message.writeWith(body);
    });
}

From source file:org.springframework.http.codec.ResourceHttpMessageWriter.java

private Mono<Void> writeSingleRegion(ResourceRegion region, ReactiveHttpOutputMessage message,
        Map<String, Object> hints) {

    return zeroCopy(region.getResource(), region, message, hints).orElseGet(() -> {
        Publisher<? extends ResourceRegion> input = Mono.just(region);
        MediaType mediaType = message.getHeaders().getContentType();
        return encodeAndWriteRegions(input, mediaType, message, hints);
    });/*from  w  w  w .j av  a2s  .  co  m*/
}