Skip to content

Commit d9dc27f

Browse files
committed
Added sample to use new redirect functions
1 parent 0e6d7ff commit d9dc27f

File tree

5 files changed

+90
-4
lines changed

5 files changed

+90
-4
lines changed

sample/src/main/AndroidManifest.xml

+1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
<activity android:name=".FileSample"/>
2525
<activity android:name=".BinarySample"/>
2626
<activity android:name=".GzipSample"/>
27+
<activity android:name=".Redirect302Sample"/>
2728
<activity android:name=".ThreadingTimeoutSample"/>
2829
<activity android:name=".CancelAllRequestsSample"/>
2930
<activity android:name=".CancelRequestHandleSample"/>

sample/src/main/java/com/loopj/android/http/sample/GetSample.java

+10
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package com.loopj.android.http.sample;
22

3+
import android.widget.Toast;
4+
35
import com.loopj.android.http.AsyncHttpClient;
46
import com.loopj.android.http.AsyncHttpResponseHandler;
57
import com.loopj.android.http.RequestHandle;
@@ -61,6 +63,14 @@ public void onFailure(int statusCode, Header[] headers, byte[] errorResponse, Th
6163
debugResponse(LOG_TAG, new String(errorResponse));
6264
}
6365
}
66+
67+
@Override
68+
public void onRetry(int retryNo) {
69+
Toast.makeText(GetSample.this,
70+
String.format("Request is retried, retry no. %d", retryNo),
71+
Toast.LENGTH_SHORT)
72+
.show();
73+
}
6474
};
6575
}
6676
}
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,79 @@
11
package com.loopj.android.http.sample;
22

3-
/**
4-
* Created by msebera on 21/04/14.
5-
*/
6-
public class Redirect302Sample {
3+
import android.view.Menu;
4+
import android.view.MenuItem;
5+
import android.widget.Toast;
6+
7+
import com.loopj.android.http.AsyncHttpClient;
8+
9+
import org.apache.http.client.HttpClient;
10+
import org.apache.http.impl.client.DefaultHttpClient;
11+
12+
public class Redirect302Sample extends GetSample {
13+
14+
private boolean enableRedirects = true;
15+
private boolean enableRelativeRedirects = true;
16+
private boolean enableCircularRedirects = true;
17+
18+
@Override
19+
public boolean onCreateOptionsMenu(Menu menu) {
20+
menu.add(Menu.NONE, 0, Menu.NONE, "Enable redirects").setCheckable(true);
21+
menu.add(Menu.NONE, 1, Menu.NONE, "Enable relative redirects").setCheckable(true);
22+
menu.add(Menu.NONE, 2, Menu.NONE, "Enable circular redirects").setCheckable(true);
23+
return super.onCreateOptionsMenu(menu);
24+
}
25+
26+
@Override
27+
public boolean onPrepareOptionsMenu(Menu menu) {
28+
MenuItem menuItemEnableRedirects = menu.findItem(0);
29+
if (menuItemEnableRedirects != null)
30+
menuItemEnableRedirects.setChecked(enableRedirects);
31+
MenuItem menuItemEnableRelativeRedirects = menu.findItem(1);
32+
if (menuItemEnableRelativeRedirects != null)
33+
menuItemEnableRelativeRedirects.setChecked(enableRelativeRedirects);
34+
MenuItem menuItemEnableCircularRedirects = menu.findItem(2);
35+
if (menuItemEnableCircularRedirects != null)
36+
menuItemEnableCircularRedirects.setChecked(enableCircularRedirects);
37+
return super.onPrepareOptionsMenu(menu);
38+
}
39+
40+
@Override
41+
public boolean onOptionsItemSelected(MenuItem item) {
42+
if (item.isCheckable()) {
43+
item.setChecked(!item.isChecked());
44+
if (item.getItemId() == 0) {
45+
enableRedirects = item.isChecked();
46+
} else if (item.getItemId() == 1) {
47+
enableRelativeRedirects = item.isChecked();
48+
} else if (item.getItemId() == 2) {
49+
enableCircularRedirects = item.isChecked();
50+
}
51+
}
52+
return super.onOptionsItemSelected(item);
53+
}
54+
55+
@Override
56+
public String getDefaultURL() {
57+
return "http://httpbin.org/redirect/6";
58+
}
59+
60+
@Override
61+
public int getSampleTitle() {
62+
return R.string.title_redirect_302;
63+
}
64+
65+
@Override
66+
public AsyncHttpClient getAsyncHttpClient() {
67+
AsyncHttpClient ahc = super.getAsyncHttpClient();
68+
HttpClient client = ahc.getHttpClient();
69+
if (client instanceof DefaultHttpClient) {
70+
Toast.makeText(this,
71+
String.format("redirects: %b\nrelative redirects: %b\ncircular redirects: %b",
72+
enableRedirects, enableRelativeRedirects, enableCircularRedirects),
73+
Toast.LENGTH_SHORT
74+
).show();
75+
ahc.setEnableRedirects(enableRedirects, enableRelativeRedirects, enableCircularRedirects);
76+
}
77+
return ahc;
78+
}
779
}

sample/src/main/java/com/loopj/android/http/sample/WaypointsActivity.java

+2
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ public class WaypointsActivity extends ListActivity {
1818
"FILE",
1919
"BINARY",
2020
"GZIP",
21+
"302 REDIRECT",
2122
"THREADING TIMEOUTS",
2223
"CANCEL ALL REQUESTS",
2324
"CANCEL REQUEST HANDLE",
@@ -32,6 +33,7 @@ public class WaypointsActivity extends ListActivity {
3233
FileSample.class,
3334
BinarySample.class,
3435
GzipSample.class,
36+
Redirect302Sample.class,
3537
ThreadingTimeoutSample.class,
3638
CancelAllRequestsSample.class,
3739
CancelRequestHandleSample.class,

sample/src/main/res/values/strings.xml

+1
Original file line numberDiff line numberDiff line change
@@ -18,4 +18,5 @@
1818
<string name="label_headers">Headers (key=val, one per line)</string>
1919
<string name="label_req_body">Request body</string>
2020
<string name="button_cancel">Cancel</string>
21+
<string name="title_redirect_302">302 Redirect handling</string>
2122
</resources>

0 commit comments

Comments
 (0)