diff options
Diffstat (limited to 'libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/HTTPUtils.java')
-rw-r--r-- | libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/HTTPUtils.java | 31 |
1 files changed, 31 insertions, 0 deletions
diff --git a/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/HTTPUtils.java b/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/HTTPUtils.java new file mode 100644 index 000000000..9773d45d7 --- /dev/null +++ b/libs/utils/WordPressUtils/src/main/java/org/wordpress/android/util/HTTPUtils.java @@ -0,0 +1,31 @@ +package org.wordpress.android.util; + +import java.io.IOException; +import java.net.HttpURLConnection; +import java.net.URL; +import java.util.Map; + +public class HTTPUtils { + public static final int REQUEST_TIMEOUT_MS = 30000; + + /** + * Builds an HttpURLConnection from a URL and header map. Will force HTTPS usage if given an Authorization header. + * @throws IOException + */ + public static HttpURLConnection setupUrlConnection(String url, Map<String, String> headers) throws IOException { + // Force HTTPS usage if an authorization header was specified + if (headers.keySet().contains("Authorization")) { + url = UrlUtils.makeHttps(url); + } + + HttpURLConnection conn = (HttpURLConnection) new URL(url).openConnection(); + conn.setReadTimeout(REQUEST_TIMEOUT_MS); + conn.setConnectTimeout(REQUEST_TIMEOUT_MS); + + for (Map.Entry<String, String> entry : headers.entrySet()) { + conn.setRequestProperty(entry.getKey(), entry.getValue()); + } + + return conn; + } +} |