0

Netty 3.3.1 で Netty Extension 1.1.9 の HttpPostRequestDecoder を使用しようとしています。ただし、組み込みの 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);
4

3 に答える 3

0

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());
}
于 2012-04-10T15:47:06.060 に答える
0

master ブランチから HttpPostRequestDecoder を使用しようとしましたか?

https://github.com/netty/netty/tree/master/codec-http/src/main/java/io/netty/handler/codec/http

それは私のために働いているようです。https://github.com/mashupbots/socko/tree/master/socko-webserver/src/main/java/org/mashupbots/socko/postdecoderを参照してください

関連するすべてのファイルをソース ディレクトリに取得し、名前空間を変更するだけです。

于 2012-04-09T05:12:56.327 に答える