Retrofitまとめ
コンテンツ
- 公式ドキュメント
- インストール
- 使い方イメージ
- 関連記事
- 参考
1. 公式ドキュメント
https://square.github.io/retrofit/
2. インストール
implementation 'com.squareup.retrofit2:retrofit:(insert latest version)' implementation 'com.squareup.retrofit2:converter-gson:2.3.0' implementation 'com.squareup.okhttp3:logging-interceptor:3.8.1'
3. 使い方イメージ
- インターフェースを定義する。
- retrofitインスタンスを生成する。create()メソッドの引数をインターフェースとする。
- HTTP通信を実行する
1.インターフェースを定義する
interface MyApi{ @GET("/my/end/point") fun getItemList(): Call<MyResponse> }
#インターフェースの補足
Interfaceでエンドポイント、メソッド、パラメーターを定義する。
2.retrofitインスタンスを生成する。create()メソッドの引数をインターフェースとする。
val retrofit:Retrofit = Retrofit.Builder() .baseUrl("https://example.com/") .build(); val service = retrofit.create(MyApi::class.java);
なお、POSTメソッドを行う場合にはretrofitインスタンスにretrofit#addConverterFactory()メソッドを追加する必要があるようだ。
val retrofit:Retrofit = Retrofit.Builder() .baseUrl("https://example.com/") .addConverterFactory(GsonConverterFactory.create()) .build(); val service = retrofit.create(MyApi::class.java);
参考:Retrofit2 &OkHttp でAndroidのHTTP通信が快適だにゃん
3.HTTP通信を実行する
retrofitインスタンス設定したインターフェースのメソッドを呼び出す。その後にexecute()またはenque()メソッドを加えるとメソッドが実行される。 executeメソッドは同期処理。enqueメソッドは非同期処理。
service.getItemList().execute( 省略 )
//または
service.getItemList()enque({ 省略 })
4. 関連記事
retrofit Requestヘッダーを参照する方法 - diadia
retrofit multipart送信を行う - diadia
retrofitでmultipart通信 複数の画像を送信する - diadia