これら2つのライブラリの違いは何ですか?
Volleyがhttpurlconnectionを使用し、okhttpをレトロフィットするため、これら2つのlibに違いがあることを理解した方法も...
しかし、私はそれらと両方のソリューションの長所と短所の違いを理解していません。 okhttpとhttpurlconnectionのどちらが良いですか?
いつ知りたいですか?.
編集:
Android httpurlconnectionにokhttpを使用するのはなぜですか?私が間違っていない場合、httpurlconnectionがokhttpを使用していなかった前に
okHttpの長所 OkHttpは、リクエストごとに簡単にカスタマイズできます—各リクエストのタイムアウトのカスタマイズなど。 OkHttpネットワークが問題を起こしても耐えます:一般的な接続の問題から静かに回復します。サービスに複数のIPアドレスがある場合、最初の接続が失敗すると、OkHttpは代替アドレスを試みます。
完全な分析任意のリクエストを取得できます。送信バイト数、受信バイト数、および要求に要した時間を知ることができます。これらの分析は重要であり、アプリケーションのデータ使用量と各リクエストに要した時間を確認できるため、遅いリクエストを特定できます。
OkHttpの使い方は簡単です。その要求/応答APIは、流暢なビルダーと不変性で設計されています。同期ブロッキング呼び出しとコールバックによる非同期呼び出しの両方をサポートしています。
OkHttpはAndroid 2.3以上をサポートしています。Javaの場合、最小要件は1.7です。
APIは異なりますが、個人的にはOkHttpのものを好みます。
Android 4.4以降、ネットワークレイヤー(およびHttpUrlConnection API)もOkHttpを介して実装されていることに注意してください。
利点:
クエリパラメータ:
URI baseUri = new URI("www.exemple.com/search");
URI uri = applyParameters(baseUri, "Word","Java");
HttpURLConnection connection =
(HttpURLConnection) uri.toURL().openConnection();
connection.setDoInput(true);
connection.setDoOutput(false);
connection.setRequestMethod("GET");
connection.connect();
if (connection.getResponseCode() ==
HttpURLConnection.HTTP_OK) {
// ...
}
Androidヘッダーの例:
conn.setRequestProperty("Content-Type", "application/json");
conn.setRequestProperty("CustomHeader", token);
利点:
クエリパラメータ:
HttpUrl.Builder urlBuilder = HttpUrl.parse("https://httpbin.org/get).newBuilder();
urlBuilder.addQueryParameter("website", "www.journaldev.com");
urlBuilder.addQueryParameter("tutorials", "Android");
String url = urlBuilder.build().toString();
Request request = new Request.Builder()
.url(url)
.build();
Androidヘッダーの例:
Request request = new Request.Builder()
.header("Authorization", "replace this text with your token")
.url("your api url")
.build();