[解決済み] OkHttpがあるのに、なぜRetrofitを使うのか?
質問
OkHttpでHTTPリクエストを行い、サーバからレスポンスを取得することができます。
OkHttpClient client = new OkHttpClient();
Request request = new Request.Builder()
.url(url)
.build();
Response response = client.newCall(request).execute();
で、Gson libでレスポンスを必要なオブジェクトに変換します。
これはSquare/OkHttpのドキュメントから引用しています。
そのリクエスト/レスポンスAPIは、流暢なビルダーと不変性で設計されています。 immutabilityで設計されています。同期ブロック呼び出しとコールバックによる非同期呼び出しの両方をサポートしています。 コールバックによる非同期呼び出しの両方をサポートしています。
を読みました。 スタックオーバーフロー
<ブロッククオートRetrofitはOkHTTPが利用可能な場合、自動的にOkHTTPを使用します。
.
そこで質問なのですが、Retrofitはいったい何のためにあるのでしょうか?
OkHttpにできなくて、Retrofitにできることは何ですか?
リクエストAPIの問題は、OkHttpとGsonが解決してくれると思います。 では、Retrofitはどんな問題を解決してくれるのでしょうか?
どのように解決するのか?
<ブロッククオートOkHttpでHTTPリクエストを行い、サーバからレスポンスを取得します。そして、Gson libでレスポンスを必要なオブジェクトに変換します。
このコードでは、URLの生成とGsonを使用したJSONの実際のパースという2つの重要なステップを省略していることに注意してください。
そこで質問なのですが、Retrofitはいったい何のためにあるのでしょうか?
URLを生成し(特定のREST APIに結びついた型認識生成コードを使用)、Gsonを使用してJSONを実際にパースするためのものです。言い換えれば、このコード スニペットでスキップしたことを行うのです。
また、特定のタイプのREST操作(たとえば、POST)のために、送信するものを組み立てるのに少し役立ちます(たとえば、符号化されたフォームを生成します)。
定義上、Retrofitを使用する必要はありません。Retrofitはコンピュータプログラマによって書かれたコンピュータコードです。他の誰かが、Retrofit が行うことを行うコードを書くことができます。
なぜRetrofitはOkHttpを使うのか
RetrofitはHTTP操作を行う必要があります。そのため、OkHttpが提供するすべての機能を利用することができます。HTTP/2やSPDYのサポート、プラグイン可能なインターセプターなどです。
関連
-
Dateが型に解決できない問題を解決する
-
javaコンパイル時のエラー:不正な文字 '\ufeff' に対する解決策です。
-
SocketTimeoutExceptionです。読み込みがタイムアウトしました
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] JavaでArrayListではなくLinkedListを使用するのはいつですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] なぜJavaにはtransientフィールドがあるのですか?
-
[解決済み】Android UserManager.isUserAGoat()の正しい使用例?)
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
Java のエラーです。未解決のコンパイル問題 解決方法
-
Java Exceptionが発生しました エラー解決
-
この行に複数のマーカーがある - HttpServletResponseが型エラーに解決できない
-
アクセス制限です。タイプ 'Application' は API ではありません。
-
Spring Boot による HTTPS アクセスの設定
-
JDKの設定時にjava.dllが見つからない、java SE Runtime Environmentが見つからない問題が発生しました。
-
mavenプロジェクトのテストエラー java.lang.ClassNotFoundException: org.glassfish.jersey.client.ClientConfig の問題を解決する。
-
SocketTimeoutExceptionの解決方法です。読み込みがタイムアウトした
-
あるコードに出会いましたが、何に使うのか理解できません。 List<String> list = new ArrayList<String>() { { a
-
[解決済み] Androidネットワークライブラリの比較。OkHTTP、Retrofit、Volley [終了しました]。