【发布时间】:2013-11-13 07:38:40
【问题描述】:
我正在努力思考如何为 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 替换为该字符串本身?另外,我必须将 content-type 设置为 application/json。
如果有人可以帮助我或指出正确的方向,我将不胜感激。
【问题讨论】:
-
这个问题还是很难:L
-
@GreyBeardedGeek 它适用于 Netty 3.X。 Netty 4.0 中不再存在 setContent 和 ChannelBuffers