package com.github.kevinsawicki.http; import com.squareup.okhttp.OkHttpClient; import com.squareup.okhttp.OkUrlFactory; import java.io.IOException; import java.net.HttpURLConnection; import java.net.Proxy; import java.net.URL; /** * A {@link HttpRequest.ConnectionFactory connection factory} which uses OkHttp. *

* Call {@link HttpRequest#setConnectionFactory(HttpRequest.ConnectionFactory)} * with an instance of this class to enable. */ public class OkConnectionFactory implements HttpRequest.ConnectionFactory { private final OkUrlFactory okUrlFactory; public OkConnectionFactory() { this(new OkUrlFactory(new OkHttpClient())); } public OkConnectionFactory(OkUrlFactory okUrlFactory) { if (okUrlFactory == null) { throw new NullPointerException("Client must not be null."); } this.okUrlFactory = okUrlFactory; } public OkHttpClient getOkHttpClient() { return okUrlFactory.client(); } public HttpURLConnection create(URL url) throws IOException { return okUrlFactory.open(url); } public HttpURLConnection create(URL url, Proxy proxy) throws IOException { throw new UnsupportedOperationException( "Per-connection proxy is not supported. Use OkHttpClient's setProxy instead."); } }