Skip to content

Instantly share code, notes, and snippets.

@JakeWharton
Created June 17, 2013 15:04
Show Gist options
  • Select an option

  • Save JakeWharton/5797571 to your computer and use it in GitHub Desktop.

Select an option

Save JakeWharton/5797571 to your computer and use it in GitHub Desktop.
A connection factory for using OkHttp with Kevin Sawicki's HttpRequest library.
/**
* A {@link HttpRequest.ConnectionFactory connection factory} which uses OkHttp.
* <p/>
* Call {@link HttpRequest#setConnectionFactory(HttpRequest.ConnectionFactory)} with an instance of
* this class to enable.
*/
public class OkConnectionFactory implements HttpRequest.ConnectionFactory {
private final OkHttpClient client;
public OkConnectionFactory() {
this(new OkHttpClient());
}
public OkConnectionFactory(OkHttpClient client) {
if (client == null) {
throw new NullPointerException("Client must not be null.");
}
this.client = client;
}
public HttpURLConnection create(URL url) throws IOException {
return client.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.");
}
}
@kevinsawicki
Copy link

πŸ‘‰πŸ†’πŸ‘ˆ

@rockerhieu
Copy link

πŸ†’

And here is how I integrated with OkHttp 2.0:

/**  * A {@link HttpRequest.ConnectionFactory connection factory} which uses OkHttp.  * <p/>  * Call {@link HttpRequest#setConnectionFactory(HttpRequest.ConnectionFactory)} with an instance of  * this class to enable.  */ public class OkConnectionFactory implements HttpRequest.ConnectionFactory { private final OkHttpClient client; private final OkUrlFactory factory; public OkConnectionFactory() { this(new OkHttpClient()); } public OkConnectionFactory(OkHttpClient client) { if (client == null) { throw new NullPointerException("Client must not be null."); } this.client = client; factory = new OkUrlFactory(client); } public HttpURLConnection create(URL url) throws IOException { return factory.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."); } }
@davidbilly
Copy link

@rockerhieu I can't import the OkUrlFactory class, where i can find it? By the way i using the okhttp 2.1.0.

thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment