Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 与Netty一起发送POST参数以及为什么不';t DefaultHttpDataFactory不在发行版中?_Java_Http_Netty - Fatal编程技术网

Java 与Netty一起发送POST参数以及为什么不';t DefaultHttpDataFactory不在发行版中?

Java 与Netty一起发送POST参数以及为什么不';t DefaultHttpDataFactory不在发行版中?,java,http,netty,Java,Http,Netty,不会产生有效的请求。发送post请求的正确方法是什么,最好是手动构造参数数据,而不是使用数据工厂。另外,为什么HttpDataFactory没有包含在任何版本中 您写的一切都是正确的,只需添加httpReq.setHeader(HttpHeaders.Names.CONTENT_TYPE,“application/x-www-form-urlencoded”) 你的例子会奏效的。对于更复杂的代码,您需要添加url编码。DefaultFullHttpRequest请求=新的DefaultFullH

不会产生有效的请求。发送post请求的正确方法是什么,最好是手动构造参数数据,而不是使用数据工厂。另外,为什么HttpDataFactory没有包含在任何版本中

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

DefaultFullHttpRequest请求=新的DefaultFullHttpRequest(HttpVersion.HTTP_1_1,HttpMethod.POST,uri.toASCIIString());
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);
request.headers().set(HttpHeaders.Names.HOST,ip); request.headers().set(HttpHeaders.Names.CONTENT_TYPE,“application/x-www-form-urlencoded”); List nvps=new ArrayList(); 添加(新的BasicNameValuePair(param.getKey(),param.getValue()); HttpEntity HttpEntity=新的UrlEncodedFormEntity(nvps); ByteBuf ByteBuf= 未冷却的.copiedBuffer(EntityUtils.toByteArray(httpEntity)); request.content().writeBytes(byteBuf); request.headers().set(HttpHeaders.Names.CONTENT_LENGTH,request.CONTENT().readableBytes()); fu.channel().writeAndFlush(请求)
DefaultFullHttpRequest request = new DefaultFullHttpRequest(HttpVersion.HTTP_1_1, HttpMethod.POST, uri.toASCIIString());
request.headers().set(HttpHeaders.Names.HOST, ip);
request.headers().set(HttpHeaders.Names.CONTENT_TYPE,"application/x-www-form-urlencoded");
List<NameValuePair> nvps = new ArrayList<NameValuePair>();
nvps.add(new BasicNameValuePair(param.getKey(), param.getValue()));
HttpEntity httpEntity = new UrlEncodedFormEntity(nvps);
ByteBuf byteBuf = 
Unpooled.copiedBuffer(EntityUtils.toByteArray(httpEntity));
request.content().writeBytes(byteBuf);
request.headers().set(HttpHeaders.Names.CONTENT_LENGTH,request.content().readableBytes());
fu.channel().writeAndFlush(request)