Example usage for io.netty.handler.codec.http HttpUtil getContentLength

List of usage examples for io.netty.handler.codec.http HttpUtil getContentLength

Introduction

In this page you can find the example usage for io.netty.handler.codec.http HttpUtil getContentLength.

Prototype

public static int getContentLength(HttpMessage message, int defaultValue) 

Source Link

Document

Get an int representation of #getContentLength(HttpMessage,long) .

Usage

From source file:com.linecorp.armeria.internal.http.Http1ObjectEncoder.java

License:Apache License

private HttpObject convertClientHeaders(int streamId, HttpHeaders headers) throws Http2Exception {

    // Leading headers will always have :method, trailers will never have it.
    final HttpMethod method = headers.method();
    if (method == null) {
        return convertTrailingHeaders(streamId, headers);
    }/*from  w w w.j av a  2  s .  c o m*/

    // Convert leading headers.
    final HttpRequest req = new DefaultHttpRequest(HttpVersion.HTTP_1_1, method.toNettyMethod(), headers.path(),
            false);

    convert(streamId, headers, req.headers(), false);
    if (HttpUtil.getContentLength(req, -1L) >= 0) {
        // Avoid the case where both 'content-length' and 'transfer-encoding' are set.
        req.headers().remove(HttpHeaderNames.TRANSFER_ENCODING);
    } else {
        req.headers().set(HttpHeaderNames.TRANSFER_ENCODING, HttpHeaderValues.CHUNKED);
    }

    return req;
}

From source file:com.linecorp.armeria.internal.http.Http1ObjectEncoder.java

License:Apache License

private static void setTransferEncoding(HttpMessage out) {
    final io.netty.handler.codec.http.HttpHeaders outHeaders = out.headers();
    final long contentLength = HttpUtil.getContentLength(out, -1L);
    if (contentLength < 0) {
        // Use chunked encoding.
        outHeaders.set(HttpHeaderNames.TRANSFER_ENCODING, HttpHeaderValues.CHUNKED);
        outHeaders.remove(HttpHeaderNames.CONTENT_LENGTH);
    }//  www  .j a  va  2s  .c  o m
}

From source file:com.linecorp.armeria.internal.Http1ObjectEncoder.java

License:Apache License

private HttpObject convertClientHeaders(int streamId, HttpHeaders headers, boolean endStream)
        throws Http2Exception {

    // Leading headers will always have :method, trailers will never have it.
    final HttpMethod method = headers.method();
    if (method == null) {
        return convertTrailingHeaders(streamId, headers);
    }//www . j  a va 2  s .c  o  m

    // Convert leading headers.
    final String path = headers.path();
    assert path != null;
    final HttpRequest req = new DefaultHttpRequest(HttpVersion.HTTP_1_1,
            io.netty.handler.codec.http.HttpMethod.valueOf(method.name()), path, false);

    convert(streamId, headers, req.headers(), false);

    if (endStream) {
        req.headers().remove(HttpHeaderNames.TRANSFER_ENCODING);
        req.headers().remove(HttpHeaderNames.CONTENT_LENGTH);
    } else if (HttpUtil.getContentLength(req, -1L) >= 0) {
        // Avoid the case where both 'content-length' and 'transfer-encoding' are set.
        req.headers().remove(HttpHeaderNames.TRANSFER_ENCODING);
    } else {
        req.headers().set(HttpHeaderNames.TRANSFER_ENCODING, HttpHeaderValues.CHUNKED);
    }

    return req;
}

From source file:reactor.ipc.netty.http.HttpOperations.java

License:Open Source License

public NettyOutbound sendHeaders() {
    if (markHeadersAsSent()) {
        if (HttpUtil.isContentLengthSet(outboundHttpMessage())) {
            outboundHttpMessage().headers().remove(HttpHeaderNames.TRANSFER_ENCODING);
        } else if (!HttpUtil.isTransferEncodingChunked(outboundHttpMessage())) {
            HttpUtil.setContentLength(outboundHttpMessage(), 0L);
        }//from w w w. j  ava  2  s . c  om
        HttpMessage message;
        if (!HttpUtil.isTransferEncodingChunked(outboundHttpMessage())
                && HttpUtil.getContentLength(outboundHttpMessage(), 0L) == 0L) {
            message = newFullEmptyBodyMessage();
        } else {
            message = outboundHttpMessage();
        }
        return then(FutureMono.deferFuture(() -> channel().writeAndFlush(message)));
    } else {
        return this;
    }
}