diadia

興味があることをやってみる。自分のメモを残しておきます。

Retrofitまとめ

コンテンツ

  1. 公式ドキュメント
  2. インストール
  3. 使い方イメージ
  4. 関連記事
  5. 参考

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. 使い方イメージ

  1. インターフェースを定義する。
  2. retrofitインスタンスを生成する。create()メソッドの引数をインターフェースとする。
  3. 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

5. 参考

https://www.tsurutan.com/entry/2016/10/04/003929

http://pppurple.hatenablog.com/entry/2018/06/30/234400