如何使用Netty 4.0.17向JSON主体发送POST请求

 嘿可爱无罪 发布于 2023-01-18 13:20

如何使用Netty 4.0.17向JSON主体发送POST请求?我找到了那个方法: HttpPostRequestEncoder.addBodyHttpData()但是不能用它.我不知道它是怎么回事,也不确定那个方法是我需要的.请帮助别人!

1 个回答
  • 以下代码片段为Netty 4.0.20 Final工作.它基于HttpSnoopClient示例http://netty.io/4.0/xref/io/netty/example/http/snoop/HttpSnoopClient.html:

    // 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(HttpHeaders.Names.HOST, host);
    request.headers().set(HttpHeaders.Names.CONNECTION, HttpHeaders.Values.KEEP_ALIVE); // or HttpHeaders.Values.CLOSE
    request.headers().set(HttpHeaders.Names.ACCEPT_ENCODING, HttpHeaders.Values.GZIP);
    request.headers().add(HttpHeaders.Names.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(HttpHeaders.Names.CONTENT_LENGTH, bbuf.readableBytes());
    request.content().clear().writeBytes(bbuf);
    
    // Send the HTTP request.
    channel.writeAndFlush(request);
    

    2023-01-18 13:23 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有