@@ -64,57 +64,54 @@ public NettyRequestFactory(AsyncHttpClientConfig config) {
6464 cookieEncoder = config .isUseLaxCookieEncoder () ? ClientCookieEncoder .LAX : ClientCookieEncoder .STRICT ;
6565 }
6666
67- private NettyBody body (Request request , boolean connect ) {
67+ private NettyBody body (Request request ) {
6868 NettyBody nettyBody = null ;
69- if (! connect ) {
69+ Charset bodyCharset = withDefault ( request . getCharset (), DEFAULT_CHARSET );
7070
71- Charset bodyCharset = withDefault (request .getCharset (), DEFAULT_CHARSET );
71+ if (request .getByteData () != null ) {
72+ nettyBody = new NettyByteArrayBody (request .getByteData ());
7273
73- if (request .getByteData () != null ) {
74- nettyBody = new NettyByteArrayBody (request .getByteData ());
74+ } else if (request .getCompositeByteData () != null ) {
75+ nettyBody = new NettyCompositeByteArrayBody (request .getCompositeByteData ());
7576
76- } else if (request .getCompositeByteData () != null ) {
77- nettyBody = new NettyCompositeByteArrayBody ( request .getCompositeByteData ( ));
77+ } else if (request .getStringData () != null ) {
78+ nettyBody = new NettyByteBufferBody ( StringUtils . charSequence2ByteBuffer ( request .getStringData (), bodyCharset ));
7879
79- } else if (request .getStringData () != null ) {
80- nettyBody = new NettyByteBufferBody (StringUtils . charSequence2ByteBuffer ( request .getStringData (), bodyCharset ));
80+ } else if (request .getByteBufferData () != null ) {
81+ nettyBody = new NettyByteBufferBody (request .getByteBufferData ( ));
8182
82- } else if (request .getByteBufferData () != null ) {
83- nettyBody = new NettyByteBufferBody (request .getByteBufferData ());
83+ } else if (request .getStreamData () != null ) {
84+ nettyBody = new NettyInputStreamBody (request .getStreamData ());
8485
85- } else if (request .getStreamData () != null ) {
86- nettyBody = new NettyInputStreamBody (request .getStreamData ());
86+ } else if (isNonEmpty (request .getFormParams ())) {
8787
88- } else if (isNonEmpty (request .getFormParams ())) {
89-
90- CharSequence contentType = null ;
91- if (!request .getHeaders ().contains (CONTENT_TYPE )) {
92- contentType = HttpHeaderValues .APPLICATION_X_WWW_FORM_URLENCODED ;
93- }
88+ CharSequence contentType = null ;
89+ if (!request .getHeaders ().contains (CONTENT_TYPE )) {
90+ contentType = HttpHeaderValues .APPLICATION_X_WWW_FORM_URLENCODED ;
91+ }
9492
95- nettyBody = new NettyByteBufferBody (urlEncodeFormParams (request .getFormParams (), bodyCharset ), contentType );
93+ nettyBody = new NettyByteBufferBody (urlEncodeFormParams (request .getFormParams (), bodyCharset ), contentType );
9694
97- } else if (isNonEmpty (request .getBodyParts ())) {
98- nettyBody = new NettyMultipartBody (request .getBodyParts (), request .getHeaders (), config );
95+ } else if (isNonEmpty (request .getBodyParts ())) {
96+ nettyBody = new NettyMultipartBody (request .getBodyParts (), request .getHeaders (), config );
9997
100- } else if (request .getFile () != null ) {
101- nettyBody = new NettyFileBody (request .getFile (), config );
98+ } else if (request .getFile () != null ) {
99+ nettyBody = new NettyFileBody (request .getFile (), config );
102100
103- } else if (request .getBodyGenerator () instanceof FileBodyGenerator ) {
104- FileBodyGenerator fileBodyGenerator = (FileBodyGenerator ) request .getBodyGenerator ();
105- nettyBody = new NettyFileBody (fileBodyGenerator .getFile (), fileBodyGenerator .getRegionSeek (), fileBodyGenerator .getRegionLength (), config );
101+ } else if (request .getBodyGenerator () instanceof FileBodyGenerator ) {
102+ FileBodyGenerator fileBodyGenerator = (FileBodyGenerator ) request .getBodyGenerator ();
103+ nettyBody = new NettyFileBody (fileBodyGenerator .getFile (), fileBodyGenerator .getRegionSeek (), fileBodyGenerator .getRegionLength (), config );
106104
107- } else if (request .getBodyGenerator () instanceof InputStreamBodyGenerator ) {
108- InputStreamBodyGenerator inStreamGenerator = InputStreamBodyGenerator .class .cast (request .getBodyGenerator ());
109- nettyBody = new NettyInputStreamBody (inStreamGenerator .getInputStream (), inStreamGenerator .getContentLength ());
105+ } else if (request .getBodyGenerator () instanceof InputStreamBodyGenerator ) {
106+ InputStreamBodyGenerator inStreamGenerator = InputStreamBodyGenerator .class .cast (request .getBodyGenerator ());
107+ nettyBody = new NettyInputStreamBody (inStreamGenerator .getInputStream (), inStreamGenerator .getContentLength ());
110108
111- } else if (request .getBodyGenerator () instanceof ReactiveStreamsBodyGenerator ) {
112- ReactiveStreamsBodyGenerator reactiveStreamsBodyGenerator = (ReactiveStreamsBodyGenerator ) request .getBodyGenerator ();
113- nettyBody = new NettyReactiveStreamsBody (reactiveStreamsBodyGenerator .getPublisher (), reactiveStreamsBodyGenerator .getContentLength ());
109+ } else if (request .getBodyGenerator () instanceof ReactiveStreamsBodyGenerator ) {
110+ ReactiveStreamsBodyGenerator reactiveStreamsBodyGenerator = (ReactiveStreamsBodyGenerator ) request .getBodyGenerator ();
111+ nettyBody = new NettyReactiveStreamsBody (reactiveStreamsBodyGenerator .getPublisher (), reactiveStreamsBodyGenerator .getContentLength ());
114112
115- } else if (request .getBodyGenerator () != null ) {
116- nettyBody = new NettyBodyBody (request .getBodyGenerator ().createBody (), config );
117- }
113+ } else if (request .getBodyGenerator () != null ) {
114+ nettyBody = new NettyBodyBody (request .getBodyGenerator ().createBody (), config );
118115 }
119116
120117 return nettyBody ;
@@ -140,26 +137,25 @@ public NettyRequest newNettyRequest(Request request, boolean forceConnect, Proxy
140137 HttpVersion httpVersion = HttpVersion .HTTP_1_1 ;
141138 String requestUri = requestUri (uri , proxyServer , connect );
142139
143- NettyBody body = body (request , connect );
140+ NettyBody body = connect ? null : body (request );
144141
145- HttpRequest httpRequest ;
146142 NettyRequest nettyRequest ;
147- if (body instanceof NettyDirectBody ) {
148- ByteBuf buf = NettyDirectBody .class .cast (body ).byteBuf ();
149- httpRequest = new DefaultFullHttpRequest (httpVersion , method , requestUri , buf );
150- // body is passed as null as it's written directly with the request
143+ if (body == null ) {
144+ HttpRequest httpRequest = new DefaultFullHttpRequest (httpVersion , method , requestUri , Unpooled .EMPTY_BUFFER );
151145 nettyRequest = new NettyRequest (httpRequest , null );
152146
153- } else if (body == null ) {
154- httpRequest = new DefaultFullHttpRequest (httpVersion , method , requestUri , Unpooled .EMPTY_BUFFER );
147+ } else if (body instanceof NettyDirectBody ) {
148+ ByteBuf buf = NettyDirectBody .class .cast (body ).byteBuf ();
149+ HttpRequest httpRequest = new DefaultFullHttpRequest (httpVersion , method , requestUri , buf );
150+ // body is passed as null as it's written directly with the request
155151 nettyRequest = new NettyRequest (httpRequest , null );
156152
157153 } else {
158- httpRequest = new DefaultHttpRequest (httpVersion , method , requestUri );
154+ HttpRequest httpRequest = new DefaultHttpRequest (httpVersion , method , requestUri );
159155 nettyRequest = new NettyRequest (httpRequest , body );
160156 }
161157
162- HttpHeaders headers = httpRequest .headers ();
158+ HttpHeaders headers = nettyRequest . getHttpRequest () .headers ();
163159
164160 if (connect ) {
165161 // assign proxy-auth as configured on request
@@ -186,13 +182,15 @@ public NettyRequest newNettyRequest(Request request, boolean forceConnect, Proxy
186182 }
187183
188184 if (body != null ) {
189- if (body .getContentLength () < 0 )
185+ if (body .getContentLength () < 0 ) {
190186 headers .set (TRANSFER_ENCODING , HttpHeaderValues .CHUNKED );
191- else
187+ } else {
192188 headers .set (CONTENT_LENGTH , body .getContentLength ());
189+ }
193190
194- if (body .getContentType () != null )
191+ if (body .getContentType () != null ) {
195192 headers .set (CONTENT_TYPE , body .getContentType ());
193+ }
196194 }
197195
198196 // connection header and friends
@@ -205,12 +203,14 @@ public NettyRequest newNettyRequest(Request request, boolean forceConnect, Proxy
205203
206204 } else if (!headers .contains (CONNECTION )) {
207205 CharSequence connectionHeaderValue = connectionHeader (config .isKeepAlive (), httpVersion );
208- if (connectionHeaderValue != null )
206+ if (connectionHeaderValue != null ) {
209207 headers .set (CONNECTION , connectionHeaderValue );
208+ }
210209 }
211210
212- if (!headers .contains (HOST ))
211+ if (!headers .contains (HOST )) {
213212 headers .set (HOST , hostHeader (request , uri ));
213+ }
214214
215215 // don't override authorization but append
216216 addAuthorizationHeader (headers , perRequestAuthorizationHeader (request , realm ));
@@ -220,32 +220,31 @@ public NettyRequest newNettyRequest(Request request, boolean forceConnect, Proxy
220220 }
221221
222222 // Add default accept headers
223- if (!headers .contains (ACCEPT ))
223+ if (!headers .contains (ACCEPT )) {
224224 headers .set (ACCEPT , "*/*" );
225+ }
225226
226227 // Add default user agent
227- if (!headers .contains (USER_AGENT ) && config .getUserAgent () != null )
228+ if (!headers .contains (USER_AGENT ) && config .getUserAgent () != null ) {
228229 headers .set (USER_AGENT , config .getUserAgent ());
230+ }
229231
230232 return nettyRequest ;
231233 }
232234
233235 private String requestUri (Uri uri , ProxyServer proxyServer , boolean connect ) {
234- if (connect )
236+ if (connect ) {
235237 // proxy tunnelling, connect need host and explicit port
236238 return getAuthority (uri );
237239
238- else if (proxyServer != null && !uri .isSecured ())
240+ } else if (proxyServer != null && !uri .isSecured ()) {
239241 // proxy over HTTP, need full url
240242 return uri .toUrl ();
241243
242- else {
244+ } else {
243245 // direct connection to target host or tunnel already connected: only path and query
244246 String path = getNonEmptyPath (uri );
245- if (isNonEmpty (uri .getQuery ()))
246- return path + "?" + uri .getQuery ();
247- else
248- return path ;
247+ return isNonEmpty (uri .getQuery ()) ? path + "?" + uri .getQuery () : path ;
249248 }
250249 }
251250
0 commit comments