DefaultHttpContent instead of HttpResponse in netty 4.0.23 -


i have following pipeline configuration http client -

pipeline.addlast("ssl", new sslhandler());       pipeline.addlast("decoder", new httpresponsedecoder());      pipeline.addlast("encoder", new httprequestencoder()); pipeline.addlast("handler", new mysimplechannelinboundhandler()); 

in mysimplechannelinboundhandler's channelread0() method, instance of defaulthttpcontent instead of httpresponse. when log defaulthttpcontent's content using -

defaulthttpcontent content = (defaulthttpcontent) msg;           log.debug(content.content().tostring(charsetutil.utf_8)); 

i can see actual http response being logged.

why http response not being decoded httpresponse object though have http decoder in pipeline?

thanks!

use httpobjectaggregator before enc/decoders in order aggregate httpresponse , following httpcontents. after adding httpobjectaggregator in pipeline you'll fullhttpresponse object in handler.

eg : p.addlast("aggregator", new httpobjectaggregator(1048576));

one more thing, if not implementing own enc/decoders client, can netty's provided httpclientcodec


Comments