@@ -487,6 +487,11 @@ protected final <T> void writeRequest(final Channel channel, final AsyncHttpClie
487
487
Body body = null ;
488
488
if (!nettyRequest .getMethod ().equals (HttpMethod .CONNECT )) {
489
489
BodyGenerator bg = future .getRequest ().getBodyGenerator ();
490
+
491
+ if (bg == null && future .getRequest ().getStreamData () != null ) {
492
+ bg = new InputStreamBodyGenerator (future .getRequest ().getStreamData ());
493
+ }
494
+
490
495
if (bg != null ) {
491
496
// Netty issue with chunking.
492
497
if (bg instanceof InputStreamBodyGenerator ) {
@@ -834,12 +839,6 @@ else if (uri.getRawQuery() != null)
834
839
byte [] bytes = request .getStringData ().getBytes (bodyCharset );
835
840
nettyRequest .setHeader (HttpHeaders .Names .CONTENT_LENGTH , String .valueOf (bytes .length ));
836
841
nettyRequest .setContent (ChannelBuffers .wrappedBuffer (bytes ));
837
- } else if (request .getStreamData () != null ) {
838
- int [] lengthWrapper = new int [1 ];
839
- byte [] bytes = AsyncHttpProviderUtils .readFully (request .getStreamData (), lengthWrapper );
840
- int length = lengthWrapper [0 ];
841
- nettyRequest .setHeader (HttpHeaders .Names .CONTENT_LENGTH , String .valueOf (length ));
842
- nettyRequest .setContent (ChannelBuffers .wrappedBuffer (bytes , 0 , length ));
843
842
} else if (isNonEmpty (request .getParams ())) {
844
843
StringBuilder sb = new StringBuilder ();
845
844
for (final Entry <String , List <String >> paramEntry : request .getParams ()) {
0 commit comments