// Prepare the HTTP request.
String host = uri.getHost() == null ? "127.0.0.1" : uri.getHost();
FullHttpRequest request = new DefaultFullHttpRequest(
HttpVersion.HTTP_1_1, HttpMethod.POST, uri.getRawPath());
request.headers().set(HttpHeaderNames.HOST, host);
request.headers().set(HttpHeaderNames.CONNECTION, HttpHeaders.Values.KEEP_ALIVE); // or HttpHeaders.Values.CLOSE
request.headers().set(HttpHeaderNames.ACCEPT_ENCODING, HttpHeaders.Values.GZIP);
request.headers().add(HttpHeaderNames.CONTENT_TYPE, "application/json");
ByteBuf bbuf = Unpooled.copiedBuffer("{\"jsonrpc\":\"2.0\",\"method\":\"calc.add\",\"params\":[1,2],\"id\":1}", StandardCharsets.UTF_8);
request.headers().set(HttpHeaderNames.CONTENT_LENGTH, bbuf.readableBytes());
request.content().clear().writeBytes(bbuf);
// Send the HTTP request.
channel.writeAndFlush(request);
private DefaultFullHttpRequest createReq(final URI uri, final CharSequence body) throws Exception {
DefaultFullHttpRequest request;
if (body == null) {
request = new DefaultFullHttpRequest(
HttpVersion.HTTP_1_1, HttpMethod.GET, uri.getRawPath());
} else {
request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, uri.getRawPath());
request.headers().set(HttpHeaderNames.CONTENT_TYPE,"application/json");
request.content().writeBytes(body.toString().getBytes(CharsetUtil.UTF_8.name()));
request.headers().set(HttpHeaderNames.CONTENT_LENGTH,request.content().readableBytes());
}
request.setUri(uri.toString());
request.headers().set(HttpHeaderNames.HOST, uri.getHost());
request.headers().set(HttpHeaderNames.CONNECTION, HttpHeaderValues.KEEP_ALIVE);
return request;
}