我正在尝试在Netty中发送带有POST参数的请求。
我搜索了Netty API,Google和这里(Stack Overflow)
但没有找到任何好办法。 (这可能是我糟糕的搜索技巧的错:'(如果是的话,我道歉)
是否有任何API可以轻松完成?
或者我必须通过编码所有参数并在我自己的内容中设置它来完成它吗?
请让我知道任何好方法。
答案 0 :(得分:4)
以下是您如何上传文件的示例:
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?