Skip to content

Commit 04160d9

Browse files
saeed-rzsmarek
authored andcommitted
Add redirect strategy (android-async-http#1326)
* add RedirectStrategy variable * add setRedirectStrategy method
1 parent d2de77a commit 04160d9

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@
4747
import cz.msebera.android.httpclient.auth.AuthScope;
4848
import cz.msebera.android.httpclient.auth.Credentials;
4949
import cz.msebera.android.httpclient.client.CookieStore;
50+
import cz.msebera.android.httpclient.client.RedirectStrategy;
5051
import cz.msebera.android.httpclient.client.methods.HttpUriRequest;
5152
import cz.msebera.android.httpclient.config.Registry;
5253
import cz.msebera.android.httpclient.conn.HttpClientConnectionManager;
@@ -348,6 +349,18 @@ public void setCookieStore(CookieStore cookieStore) {
348349
}
349350
}
350351

352+
/**
353+
* Sets an optional RedirectStrategy to use when making requests
354+
*
355+
* @param redirectStrategy The RedirectStrategy implementation to use, usually an instance of {@link
356+
* RedirectStrategy}
357+
*/
358+
public void setRedirectStrategy(RedirectStrategy redirectStrategy){
359+
if (getHttpClientProvider() instanceof DefaultHttpClientProvider) {
360+
((DefaultHttpClientProvider) getHttpClientProvider()).setRedirectStrategy(redirectStrategy);
361+
}
362+
}
363+
351364
/**
352365
* @deprecated
353366
*/

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

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import cz.msebera.android.httpclient.client.CookieStore;
2626
import cz.msebera.android.httpclient.client.CredentialsProvider;
2727
import cz.msebera.android.httpclient.client.HttpRequestRetryHandler;
28+
import cz.msebera.android.httpclient.client.RedirectStrategy;
2829
import cz.msebera.android.httpclient.client.config.RequestConfig;
2930
import cz.msebera.android.httpclient.conn.HttpClientConnectionManager;
3031
import cz.msebera.android.httpclient.impl.client.BasicCredentialsProvider;
@@ -41,6 +42,7 @@ public class DefaultHttpClientProvider implements HttpClientProviderInterface {
4142
protected final Collection<? extends Header> commonHeaders = new ArrayList<Header>();
4243
protected HttpRequestRetryHandler retryHandler;
4344
protected boolean enableRedirects = false, enableRelativeRedirects = false, enableCircularRedirects = false;
45+
protected RedirectStrategy redirectStrategy;
4446

4547
public DefaultHttpClientProvider() {
4648
}
@@ -71,7 +73,8 @@ public final CloseableHttpClient provide() {
7173
.setDefaultHeaders(getHeaders())
7274
.setDefaultCredentialsProvider(getCredentialsProvider())
7375
.setRetryHandler(getRetryHandler())
74-
.setDefaultCookieStore(getCookieStore());
76+
.setDefaultCookieStore(getCookieStore())
77+
.setRedirectStrategy(getRedirectStrategy());
7578

7679
RequestConfig requestConfig = RequestConfig.custom().setCircularRedirectsAllowed(enableCircularRedirects).setRelativeRedirectsAllowed(enableRelativeRedirects).setRedirectsEnabled(enableRedirects).build();
7780
builder.setDefaultRequestConfig(requestConfig);
@@ -111,5 +114,11 @@ public CredentialsProvider getCredentialsProvider() {
111114
return credentialsProvider;
112115
}
113116

117+
public RedirectStrategy getRedirectStrategy() {
118+
return redirectStrategy;
119+
}
114120

121+
public void setRedirectStrategy(RedirectStrategy redirectStrategy) {
122+
this.redirectStrategy = redirectStrategy;
123+
}
115124
}

0 commit comments

Comments
 (0)