*Thư viện bắt buộc thêm
-Retrofit and converterGson: Retrofit (square.github.io)
*Thêm headers cho file config
Cách 1: Thêm header trong file config
Yêu cầu thêm thư viện OkHttp3 : Overview - OkHttp (square.github.io)
B1: Tại file config : Ta tạo 1 đối tượng Interceptor
private val interceptor : Interceptor = Interceptor {
val request: Request = it.request()
val builder: Request.Builder = request.newBuilder()
builder.header("X-RapidAPI-Key", "d93b80ace2msh93fceec6590d258p15679ajsnbf37f51d5cf7")
builder.header("X-RapidAPI-Host", "imdb8.p.rapidapi.com")
return@Interceptor it.proceed(builder.build())
}
B2: tạo một đối tượng của OkHttpClient.Builder
private val okBuilder: OkHttpClient.Builder = OkHttpClient.Builder().addInterceptor(interceptor)
B3: Thêm đối tượng của OkHttpClient.Builder vào Retrofit
private val builder = Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.client(okBuilder.build())
val retrofit: Retrofit = builder.build()
Hoàn tất thêm Header vào URL: Tất cả các interface gọi Api này đều chung một header
* Cách viết khác để tạo ra 1 instance Retrofit
object RetrofitInstant {
private val retrofit by lazy {
Retrofit
.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
}
val api: NewsAPI by lazy {
retrofit.create(NewsAPI::class.java)
}
}
sự khác biết là sử dụng by lazy
Nhận xét
Đăng nhận xét