retrofit Requestヘッダーを参照する方法
例えばRequestヘッダーのAuthorizationという項目がきちんと送信できているか確認したいとする。
retrofitでは以下の様ににすればヘッダーの内容を確認することができる。
fun logInByAuthToken(authToken:String) { val retrofit = Retrofit.Builder() .baseUrl(BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .build() val service = retrofit.create(APIService::class.java) service.loginWithAuthtoken(authToken).enqueue(object: Callback<AuthModel>{ override fun onResponse(call: Call<AuthModel>, response: Response<AuthModel>) { println(response.headers()) //responseのheaderを参照 println(call.request().headers()) //requestのheaderを参照 if (response.isSuccessful) { ...省略... }else if(response.isSuccessful == false) { ...省略... } } override fun onFailure(call: Call<AuthModel>, t: Throwable) { ...省略... } }
解説
onResponseメソッドの引数にcall引数とresponse引数がある。これはそれぞれrequestとresponseにあたる。 requestはCallクラスなので、Callクラスのメソッド、属性を確認するとrequest()メソッドがある。 このメソッドの返り値はokhttp3.Requestクラスインスタンスである。このインスタンスにheaders()メソッドを用いるとヘッダー情報を取り出すことができる。