java - 使用 Netty 发送 POST 参数,为什么 DefaultHttpDataFactory 不在版本中?

标签 java http netty

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 请求的正确方法是什么,最好是手动构建参数数据,而不是使用 DataFactory。另外,为什么 HttpDataFactory 没有包含在任何版本中?

最佳答案

你写的一切都是正确的,只需添加 httpReq.setHeader(HttpHeaders.Names.CONTENT_TYPE,"application/x-www-form-urlencoded"); 你的例子会起作用。对于更复杂的代码,您需要添加 url 编码。

关于java - 使用 Netty 发送 POST 参数,为什么 DefaultHttpDataFactory 不在版本中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7324680/

相关文章:

c# - HTML 选项值未输入到我的 Controller 中

http - 移动设备上的 Ionic 4 CORS 问题

php - 如何发出生成与 Firefox 相同的响应 header 的 cURL 请求

java.io.IOException : Connection reset by peer

netty - channelhandler 中 channelInactive 和 close 和 disconnect 之间的区别?

Java 数字提取器

java - 应用程序的私有(private)文件

java - Netty 和多个处理程序

java - 数据源: 'url' attribute is not specified and no embedded datasource could be configured

java - 紧耦合示例没有意义