web-dev-qa-db-ja.com

OkHttp 2.0でAndroid Volleyを実装する方法は?

このOkHttpStackはOkHttp2.0ではサポートされなくなりました: https://Gist.github.com/JakeWharton/5616899

OkHttp 2.0.0をVolleyと統合するための現在のパターンは何ですか?

14
JohnRock

Java.net.HttpURLConnection APIを実装するokhttp-urlconnectionモジュールを使用する必要があるため、次のようになります。

  • okhttp-urlconnection の依存関係をダウンロードまたは設定します

  • OkUrlFactoryクラスを利用するようにOkHttpStackを書き直します。

    public class OkHttpStack extends HurlStack {
       private final OkUrlFactory okUrlFactory;
       public OkHttpStack() {
           this(new OkUrlFactory(new OkHttpClient())); 
       }
       public OkHttpStack(OkUrlFactory okUrlFactory) {
           if (okUrlFactory == null) {
               throw new NullPointerException("Client must not be null.");
           }
           this.okUrlFactory = okUrlFactory;
       }
       @Override
       protected HttpURLConnection createConnection(URL url) throws IOException {
           return okUrlFactory.open(url);
       }
    }
30
franmontiel

これも使えます

import com.Android.volley.toolbox.HurlStack;
import com.squareup.okhttp.OkHttpClient;
import com.squareup.okhttp.OkUrlFactory;

/**
 * An {@link com.Android.volley.toolbox.HttpStack HttpStack} implementation
 * which uses OkHttp as its transport.
 */
public class OkHttpStack extends HurlStack {
    private final OkUrlFactory mFactory;

    public OkHttpStack() {
        this(new OkHttpClient());
    }

    public OkHttpStack(OkHttpClient client) {
        if (client == null) {
            throw new NullPointerException("Client must not be null.");
        }
        mFactory = new OkUrlFactory(client);
    }
}
5
LOG_TAG

HttpURLConnectionに依存せずに、これを実行することもできます。

https://plus.google.com/+JakeWharton/posts/31jhDwaCvtg

https://Gist.github.com/bryanstern/4e8f1cb5a8e14c20275

2
christoff