【发布时间】:2012-03-13 06:58:10
【问题描述】:
我正在尝试在 Netty 中发送带有 POST 参数的请求。
我搜索了 Netty API、Google 和这里(堆栈溢出)
但没有找到任何好的方法来做到这一点。 (这可能是我糟糕的搜索技巧的错:'(如果是这样,我道歉)
有什么 API 可以轻松做到吗?
还是我必须自己编码所有参数并在内容中设置?
请告诉我任何好的方法。
【问题讨论】:
标签: netty
我正在尝试在 Netty 中发送带有 POST 参数的请求。
我搜索了 Netty API、Google 和这里(堆栈溢出)
但没有找到任何好的方法来做到这一点。 (这可能是我糟糕的搜索技巧的错:'(如果是这样,我道歉)
有什么 API 可以轻松做到吗?
还是我必须自己编码所有参数并在内容中设置?
请告诉我任何好的方法。
【问题讨论】:
标签: netty
这是一个如何上传文件的示例:
https://github.com/netty/netty/tree/master/example/src/main/java/io/netty/example/http/upload
如果您不想上传文件,请忽略 MIME 多部分位。
尝试类似:
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);
httpReq.setHeader(HttpHeaders.Names.CONTENT_TYPE,"application/x-www-form-urlencoded");
String params="a=b&c=d";
ChannelBuffer cb=ChannelBuffers.copiedBuffer(params,Charset.defaultCharset());
httpReq.setHeader(HttpHeaders.Names.CONTENT_LENGTH,cb.readableBytes());
httpReq.setContent(cb);
见Sending POST params with Netty and why isn't DefaultHttpDataFactory not in the releases?
【讨论】: