gpt4 book ai didi

java - 在 Netty 中发送 HTTP Post 请求

转载 作者:可可西里 更新时间:2023-11-01 16:43:19 26 4
gpt4 key购买 nike

我正在思考如何为 Web 服务器构建 HTTP Post 请求。

我找到了这段代码

HttpRequest httpReq=new DefaultHttpRequest(HttpVersion.HTTP_1_1,HttpMethod.POST,uri);
httpReq.setHeader(HttpHeaders.Names.HOST,host);
httpReq.setHeader(HttpHeaders.Names.CONNECTION,HttpHeaders.Values.KEEP_ALIVE);
httpReq.setHeader(HttpHeaders.Names.ACCEPT_ENCODING,HttpHeaders.Values.GZIP);
String params="a=b&c=d";
ChannelBuffer cb=ChannelBuffers.copiedBuffer(params,Charset.defaultCharset());
httpReq.setHeader(HttpHeaders.Names.CONTENT_LENGTH,cb.readableBytes());
httpReq.setContent(cb);

据我推断,该请求似乎将发送一个 POST 请求,其中包含两个值 a 和 c,分别等于 b 和 d。

我希望能够提交一个 JSON 请求。例如,如果我的后期数据需要是

{
"test": "value",
"key": "value",
}

我会用那个字符串本身替换 a=b&c=d 吗?此外,我必须将内容类型设置为 application/json。

如果有人能帮助我或指出正确的方向,我将不胜感激。

最佳答案

我通过 Netty 4.x 向 localhost/target 发出 JSON 请求的示例:

String JSON_DATA = "{    \"test\": \"value\",    \"key\": \"value\"}";
FullHttpRequest request = new DefaultFullHttpRequest(HTTP_1_1, POST, "/target",
wrappedBuffer(JSON_DATA.getBytes(CharsetUtil.UTF_8)));
request.headers().add(HttpHeaderNames.HOST, "127.0.0.1");
request.headers().add(HttpHeaderNames.CONTENT_TYPE, HttpHeaderValues.APPLICATION_JSON);
request.headers().add(HttpHeaderNames.ACCEPT_ENCODING, HttpHeaderValues.GZIP);
request.headers().set(HttpHeaderNames.CONNECTION, HttpHeaderValues.CLOSE);

outboundChannel.writeAndFlush(request);

关于java - 在 Netty 中发送 HTTP Post 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19738022/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com