I'm developing an Android App with Retrofit2 and Kotlin. When I try request to API with GET method with Access Token as Header, the API show me this message: "Unauthorized" (code: 401).
My code is this:
interface:
@GET("list/{list_id}")
fun getList(
@Header("Authorization") auth: String,
@Path("list_id") list_id: Int,
@Query("page") page: Int,
@Query("api_key") api_key: String,
@Query("language") language: String,
@Query("sort_by") sort_by: String
): Call<List>
request:
private val url = "https://api.themoviedb.org/4/"
fun retrofit(): API {
val retrofit = Retrofit.Builder()
.baseUrl(url)
.addConverterFactory(GsonConverterFactory.create())
.build()
return retrofit.create(API::class.java)
}
class:
val call = request.retrofit().getList("Bearer " + token, 1, "", "", "", "")
call.enqueue(object : Callback<List> {
override fun onResponse(call: Call<List>, response: Response<List>) {}
override fun onFailure(call: Call<List>, t: Throwable) {}
})
Can't find a movie or TV show? Login to create it.
Want to rate or add this item to a list?
Not a member?
Reply by Travis Bell
on June 14, 2019 at 10:15 AM
If you're specifying a valid
Authorization
header, try removing theapi_key
query param. I don't think it will work with both specified.