Skip to content

Commit e5de9e5

Browse files
authored
replace old redirect method with new RedirectStrategy (android-async-http#1335)
1 parent 78c8b5d commit e5de9e5

File tree

2 files changed

+30
-9
lines changed

2 files changed

+30
-9
lines changed

library/src/main/java/com/loopj/android/http/AsyncHttpClient.java

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -310,10 +310,7 @@ public RequestHandle delete(Context context, String url, Header[] headers, Reque
310310
* @deprecated
311311
*/
312312
public void setEnableRedirects(final boolean enableRedirects, final boolean enableRelativeRedirects, final boolean enableCircularRedirects) throws IllegalAccessException {
313-
if (getHttpClientProvider() instanceof DefaultHttpClientProvider) {
314-
((DefaultHttpClientProvider) getHttpClientProvider()).setEnableRedirects(enableRedirects, enableRelativeRedirects, enableCircularRedirects);
315-
}
316-
throw new IllegalAccessException("This method shall not be used with non-default credentials provider set");
313+
setEnableRedirectStrategy(enableRedirects);
317314
}
318315

319316
/**
@@ -325,7 +322,7 @@ public void setEnableRedirects(final boolean enableRedirects, final boolean enab
325322
* @deprecated
326323
*/
327324
public void setEnableRedirects(final boolean enableRedirects, final boolean enableRelativeRedirects) throws IllegalAccessException {
328-
setEnableRedirects(enableRedirects, enableRelativeRedirects, true);
325+
setEnableRedirectStrategy(enableRedirects);
329326
}
330327

331328
/**
@@ -334,7 +331,7 @@ public void setEnableRedirects(final boolean enableRedirects, final boolean enab
334331
* @deprecated
335332
*/
336333
public void setEnableRedirects(final boolean enableRedirects) throws IllegalAccessException {
337-
setEnableRedirects(enableRedirects, enableRedirects, enableRedirects);
334+
setEnableRedirectStrategy(enableRedirects);
338335
}
339336

340337
/**
@@ -358,6 +355,18 @@ public void setCookieStore(CookieStore cookieStore) {
358355
public void setRedirectStrategy(RedirectStrategy redirectStrategy){
359356
if (getHttpClientProvider() instanceof DefaultHttpClientProvider) {
360357
((DefaultHttpClientProvider) getHttpClientProvider()).setRedirectStrategy(redirectStrategy);
358+
setEnableRedirectStrategy(true);
359+
}
360+
}
361+
362+
/**
363+
* Sets enable to use {@link RedirectStrategy} when making requests
364+
*
365+
* @param isEnable
366+
*/
367+
public void setEnableRedirectStrategy(boolean isEnable){
368+
if (getHttpClientProvider() instanceof DefaultHttpClientProvider) {
369+
((DefaultHttpClientProvider) getHttpClientProvider()).setEnableRedirectStrategy(isEnable);
361370
}
362371
}
363372

library/src/main/java/com/loopj/android/http/DefaultHttpClientProvider.java

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public class DefaultHttpClientProvider implements HttpClientProviderInterface {
4343
protected HttpRequestRetryHandler retryHandler;
4444
protected boolean enableRedirects = false, enableRelativeRedirects = false, enableCircularRedirects = false;
4545
protected RedirectStrategy redirectStrategy;
46+
protected boolean enableRedirectStrategy = false;
4647

4748
public DefaultHttpClientProvider() {
4849
}
@@ -76,8 +77,8 @@ public final CloseableHttpClient provide() {
7677
.setDefaultCookieStore(getCookieStore())
7778
.setRedirectStrategy(getRedirectStrategy());
7879

79-
RequestConfig requestConfig = RequestConfig.custom().setCircularRedirectsAllowed(enableCircularRedirects).setRelativeRedirectsAllowed(enableRelativeRedirects).setRedirectsEnabled(enableRedirects).build();
80-
builder.setDefaultRequestConfig(requestConfig);
80+
if(!enableRedirectStrategy)
81+
builder.disableRedirectHandling();
8182

8283
return builder.build();
8384
}
@@ -115,10 +116,21 @@ public CredentialsProvider getCredentialsProvider() {
115116
}
116117

117118
public RedirectStrategy getRedirectStrategy() {
118-
return redirectStrategy;
119+
if(enableRedirectStrategy)
120+
return redirectStrategy;
121+
122+
return null;
119123
}
120124

121125
public void setRedirectStrategy(RedirectStrategy redirectStrategy) {
122126
this.redirectStrategy = redirectStrategy;
123127
}
128+
129+
public boolean isEnableRedirectStrategy() {
130+
return enableRedirectStrategy;
131+
}
132+
133+
public void setEnableRedirectStrategy(boolean enableRedirectStrategy) {
134+
this.enableRedirectStrategy = enableRedirectStrategy;
135+
}
124136
}

0 commit comments

Comments
 (0)