将HttpPostRequestDecoder与Netty 3.x一起使用

将HttpPostRequestDecoder与Netty 3.x一起使用,post,netty,Post,Netty,我正在尝试将Netty扩展1.1.9中的HttpPostRequestDecoder与Netty 3.3.1一起使用。但是,当试图从内置的Netty-HttpRequest获取org.jboss.Netty.handler.codec.http2包中使用的内容时,我会遇到类转换问题 正确的方法是什么 org.jboss.netty.handler.codec.http.DefaultHttpRequest request; HttpPostRequestDecoder decoder = new

我正在尝试将Netty扩展1.1.9中的HttpPostRequestDecoder与Netty 3.3.1一起使用。但是,当试图从内置的Netty-HttpRequest获取org.jboss.Netty.handler.codec.http2包中使用的内容时,我会遇到类转换问题

正确的方法是什么

org.jboss.netty.handler.codec.http.DefaultHttpRequest request;
HttpPostRequestDecoder decoder = new HttpPostRequestDecoder((org.jboss.netty.handler.codec.http.HttpRequest) request);

我从未使用过netty扩展,但从源代码的快速查看来看,您需要确保只使用随附的http编解码器。根据您的描述,您似乎试图将netty附带的http编解码器与netty扩展附带的http编解码器混合使用。

您是否尝试过使用主分支的HttpPostRequestDecoder

它似乎对我有用。看


您只需将所有相关文件放入源目录并更改名称空间。

我最后在http.DefaultHttpRequest和http2.DefaultHttpRequest实现之间编写了一个小型转换器:

org.jboss.netty.handler.codec.http2.DefaultHttpRequest convertedRequest = new org.jboss.netty.handler.codec.http2.DefaultHttpRequest(HttpVersion.HTTP_1_0, org.jboss.netty.handler.codec.http2.HttpMethod.POST, request.getUri());
convertedRequest.setContent(request.getContent());
convertedRequest.setChunked(request.isChunked());
// convert the headers
for (Entry<String, String> entry : request.getHeaders()) {
    convertedRequest.setHeader(entry.getKey(), entry.getValue());
}
org.jboss.netty.handler.codec.http2.DefaultHttpRequest convertedRequest=new org.jboss.netty.handler.codec.http2.DefaultHttpRequest(HttpVersion.HTTP_1_0,org.jboss.netty.handler.codec.http2.HttpMethod.POST,request.getUri());
convertedRequest.setContent(request.getContent());
convertedRequest.setChunked(request.isChunked());
//转换标题
for(条目:request.getHeaders()){
convertedRequest.setHeader(entry.getKey(),entry.getValue());
}

3.xYes上,我还没有跳到最前沿分支,情况就是这样。。我希望两者之间能够互操作。。没有按计划进行,所以我做了一个又快又脏的转换器。