@@ -115,33 +115,32 @@ private <T> HttpResponse<T> doSend(
115115 while (true ) {
116116 httpRequestChecker .check (currentRequestUri );
117117 var response = delegate .send (currentRequest , responseBodyHandler , httpRequestChecker );
118- if (HttpUtils .isRedirectStatusCode (response .statusCode ())) {
119- if (redirectCount >= MAX_HTTP_REDIRECTS ) {
120- throw new HttpClientException (ErrorMessages .create ("httpTooManyRedirects" ));
121- }
122- var location =
123- response
124- .headers ()
125- .firstValue ("Location" )
126- .orElseThrow (
127- () -> new HttpClientException (ErrorMessages .create ("httpRedirectNoLocation" )));
128- URI redirectUri ;
129- try {
130- redirectUri = currentRequestUri .resolve (location );
131- } catch (IllegalArgumentException e ) {
132- throw new HttpClientException (ErrorMessages .create ("httpRedirectInvalidUri" , location ));
133- }
134- if (currentRequestUri .getScheme ().equals ("https" )
135- && redirectUri .getScheme ().equals ("http" )) {
136- throw new HttpClientException (
137- ErrorMessages .create ("httpRedirectCannotDowngrade" , currentRequestUri , redirectUri ));
138- }
139- currentRequestUri = rewriteUri (redirectUri );
140- currentRequest = rewriteRequest (request , currentRequestUri );
141- redirectCount ++;
142- } else {
118+ if (!HttpUtils .isRedirectStatusCode (response .statusCode ())) {
143119 return response ;
144120 }
121+ if (redirectCount >= MAX_HTTP_REDIRECTS ) {
122+ throw new HttpClientException (
123+ ErrorMessages .create ("httpTooManyRedirects" , MAX_HTTP_REDIRECTS ));
124+ }
125+ var location = response .headers ().firstValue ("Location" );
126+ if (location .isEmpty ()) {
127+ throw new HttpClientException (
128+ ErrorMessages .create ("httpRedirectNoLocation" , currentRequestUri ));
129+ }
130+ URI redirectUri ;
131+ try {
132+ redirectUri = currentRequestUri .resolve (location .get ());
133+ } catch (IllegalArgumentException e ) {
134+ throw new HttpClientException (
135+ ErrorMessages .create ("httpRedirectInvalidUri" , currentRequestUri , location .get ()));
136+ }
137+ if (currentRequestUri .getScheme ().equals ("https" ) && redirectUri .getScheme ().equals ("http" )) {
138+ throw new HttpClientException (
139+ ErrorMessages .create ("httpRedirectCannotDowngrade" , currentRequestUri , redirectUri ));
140+ }
141+ currentRequestUri = rewriteUri (redirectUri );
142+ currentRequest = rewriteRequest (request , currentRequestUri );
143+ redirectCount ++;
145144 }
146145 }
147146
0 commit comments