aboutsummaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorNarayan Kamath <narayan@google.com>2013-06-13 12:06:06 +0100
committerNarayan Kamath <narayan@google.com>2013-06-13 12:16:59 +0100
commitbf0942e19906b85a3a061d1e762a4474bef6f1e2 (patch)
treeee228c1952208cf830d879d36b68f13274461ac4 /android
parent46fb83f3095bfdeff14feb0d4c3d40984caa13e7 (diff)
downloadokhttp-bf0942e19906b85a3a061d1e762a4474bef6f1e2.tar.gz
Don't follow protocol redirects.
OkHttp allows protocol redirects by default, so turn them off explicitly. Also, let HttpsHandler extend HttpHandler so that they can share code that deals with OkHttpClient initialization. Change-Id: I890456260571abd40a64ab1647eb4e991f5b1c7e
Diffstat (limited to 'android')
-rw-r--r--android/main/java/com/squareup/okhttp/HttpHandler.java16
-rw-r--r--android/main/java/com/squareup/okhttp/HttpsHandler.java19
2 files changed, 21 insertions, 14 deletions
diff --git a/android/main/java/com/squareup/okhttp/HttpHandler.java b/android/main/java/com/squareup/okhttp/HttpHandler.java
index c960160..c656c04 100644
--- a/android/main/java/com/squareup/okhttp/HttpHandler.java
+++ b/android/main/java/com/squareup/okhttp/HttpHandler.java
@@ -23,19 +23,29 @@ import java.net.URL;
import java.net.URLConnection;
import java.net.URLStreamHandler;
-public final class HttpHandler extends URLStreamHandler {
+public class HttpHandler extends URLStreamHandler {
@Override protected URLConnection openConnection(URL url) throws IOException {
- return new OkHttpClient().open(url);
+ return newOkHttpClient(null /* proxy */).open(url);
}
@Override protected URLConnection openConnection(URL url, Proxy proxy) throws IOException {
if (url == null || proxy == null) {
throw new IllegalArgumentException("url == null || proxy == null");
}
- return new OkHttpClient().setProxy(proxy).open(url);
+ return newOkHttpClient(proxy).open(url);
}
@Override protected int getDefaultPort() {
return 80;
}
+
+ protected OkHttpClient newOkHttpClient(Proxy proxy) {
+ OkHttpClient client = new OkHttpClient();
+ client.setFollowProtocolRedirects(false);
+ if (proxy != null) {
+ client.setProxy(proxy);
+ }
+
+ return client;
+ }
}
diff --git a/android/main/java/com/squareup/okhttp/HttpsHandler.java b/android/main/java/com/squareup/okhttp/HttpsHandler.java
index 515725a..3570846 100644
--- a/android/main/java/com/squareup/okhttp/HttpsHandler.java
+++ b/android/main/java/com/squareup/okhttp/HttpsHandler.java
@@ -25,21 +25,18 @@ import java.net.URLStreamHandler;
import java.util.Arrays;
import java.util.List;
-public final class HttpsHandler extends URLStreamHandler {
+public final class HttpsHandler extends HttpHandler {
private static final List<String> ENABLED_TRANSPORTS = Arrays.asList("http/1.1");
- @Override protected URLConnection openConnection(URL url) throws IOException {
- return new OkHttpClient().open(url);
+ @Override protected int getDefaultPort() {
+ return 443;
}
- @Override protected URLConnection openConnection(URL url, Proxy proxy) throws IOException {
- if (url == null || proxy == null) {
- throw new IllegalArgumentException("url == null || proxy == null");
- }
- return new OkHttpClient().setProxy(proxy).setTransports(ENABLED_TRANSPORTS).open(url);
- }
+ @Override
+ protected OkHttpClient newOkHttpClient(Proxy proxy) {
+ OkHttpClient client = super.newOkHttpClient(proxy);
+ client.setTransports(ENABLED_TRANSPORTS);
- @Override protected int getDefaultPort() {
- return 443;
+ return client;
}
}