@@ -179,7 +179,8 @@ private boolean exitAfterHandling401(//
179
179
final Request request ,//
180
180
int statusCode ,//
181
181
Realm realm ,//
182
- ProxyServer proxyServer ) {
182
+ ProxyServer proxyServer ,//
183
+ HttpRequest httpRequest ) {
183
184
184
185
if (statusCode != UNAUTHORIZED .code ())
185
186
return false ;
@@ -291,7 +292,7 @@ private boolean exitAfterHandling401(//
291
292
final Request nextRequest = new RequestBuilder (future .getCurrentRequest ()).setHeaders (requestHeaders ).build ();
292
293
293
294
logger .debug ("Sending authentication to {}" , request .getUri ());
294
- if (future .isKeepAlive () && !HttpHeaders .isTransferEncodingChunked (response )) {
295
+ if (future .isKeepAlive () && !HttpHeaders .isTransferEncodingChunked (httpRequest ) && ! HttpHeaders . isTransferEncodingChunked ( response )) {
295
296
future .setReuseChannel (true );
296
297
requestSender .drainChannelAndExecuteNextRequest (channel , future , nextRequest );
297
298
} else {
@@ -308,7 +309,8 @@ private boolean exitAfterHandling407(//
308
309
HttpResponse response ,//
309
310
Request request ,//
310
311
int statusCode ,//
311
- ProxyServer proxyServer ) {
312
+ ProxyServer proxyServer ,//
313
+ HttpRequest httpRequest ) {
312
314
313
315
if (statusCode != PROXY_AUTHENTICATION_REQUIRED .code ())
314
316
return false ;
@@ -425,7 +427,7 @@ private boolean exitAfterHandling407(//
425
427
final Request nextRequest = nextRequestBuilder .build ();
426
428
427
429
logger .debug ("Sending proxy authentication to {}" , request .getUri ());
428
- if (future .isKeepAlive () && !HttpHeaders .isTransferEncodingChunked (response )) {
430
+ if (future .isKeepAlive () && !HttpHeaders .isTransferEncodingChunked (httpRequest ) && ! HttpHeaders . isTransferEncodingChunked ( response )) {
429
431
future .setConnectAllowed (true );
430
432
future .setReuseChannel (true );
431
433
requestSender .drainChannelAndExecuteNextRequest (channel , future , nextRequest );
@@ -515,8 +517,8 @@ private boolean handleHttpResponse(final HttpResponse response, final Channel ch
515
517
NettyResponseHeaders responseHeaders = new NettyResponseHeaders (response .headers ());
516
518
517
519
return exitAfterProcessingFilters (channel , future , handler , status , responseHeaders ) || //
518
- exitAfterHandling401 (channel , future , response , request , statusCode , realm , proxyServer ) || //
519
- exitAfterHandling407 (channel , future , response , request , statusCode , proxyServer ) || //
520
+ exitAfterHandling401 (channel , future , response , request , statusCode , realm , proxyServer , httpRequest ) || //
521
+ exitAfterHandling407 (channel , future , response , request , statusCode , proxyServer , httpRequest ) || //
520
522
exitAfterHandling100 (channel , future , statusCode ) || //
521
523
exitAfterHandlingRedirect (channel , future , response , request , statusCode , realm ) || //
522
524
exitAfterHandlingConnect (channel , future , request , proxyServer , statusCode , httpRequest ) || //
0 commit comments