All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.king.platform.net.http.netty.request.ByteArrayHttpBody Maven / Gradle / Ivy

There is a newer version: 3.0.26
Show newest version
// Copyright (C) king.com Ltd 2015
// https://github.com/king/king-http-client
// Author: Magnus Gustafsson
// License: Apache 2.0, https://raw.github.com/king/king-http-client/LICENSE-APACHE

package com.king.platform.net.http.netty.request;


import io.netty.buffer.ByteBuf;
import io.netty.channel.ChannelFuture;
import io.netty.channel.ChannelHandlerContext;

import java.nio.charset.Charset;
import java.util.Arrays;

public class ByteArrayHttpBody implements HttpBody {
	private final byte[] content;
	private final String contentType;
	private final Charset characterEncoding;

	public ByteArrayHttpBody(byte[] content, String contentType, Charset characterEncoding) {
		this.content = Arrays.copyOf(content, content.length);
		this.contentType = contentType;
		this.characterEncoding = characterEncoding;
	}

	@Override
	public ChannelFuture writeContent(ChannelHandlerContext ctx, boolean isSecure) {
		ByteBuf byteBuf = ctx.alloc().buffer(content.length).writeBytes(content);
		return ctx.write(byteBuf, ctx.newProgressivePromise());
	}

	@Override
	public long getContentLength() {
		return content.length;
	}

	@Override
	public String getContentType() {
		return contentType;
	}

	@Override
	public Charset getCharacterEncoding() {
		return characterEncoding;
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy