GitHub APi文档说我需要在 header 中传递访问令牌。
通过替换OAUTH_TOKEN可以使用此命令。我尝试在代码中做同样的事情:
@GET("/user/repos")
fun getAllUserRepos(
@Header("Authorization: token") accessToken: String
): Call<List<RepoJson>>
但是当我在 enqueque onFailure 中遇到错误时:标头名称中的意外字符0x20出现在14:授权:令牌。然后,我删除空间,删除标头中 Authorization:和 token 之间的空间,并从响应中获得 Unauthorized 消息> onResponce 。
我尝试了此操作(也在 header 中的 Authorization:和 token 之间留有空格):
@Headers("Authorization: token MY_VALID_TOKEN")
@GET("/user/repos")
fun getAllUserRepos(): Call<List<RepoJson>>
它成功执行(通过入队)。
我的API:
val api: GiHubApi = Retrofit.Builder()
.baseUrl("https://api.github.com")
.addConverterFactory(GsonConverterFactory.create())
.build()
.create(GitHubApi::class.java)
答案 0 :(得分:2)
标题应为:
@GET("/user/repos")
fun getAllUserRepos(
@Header("Authorization") accessToken: String
): Call<List<RepoJson>>
在那儿完成that。
答案 1 :(得分:0)
根据文档, key =“ Authorization”和value =“ token VALID_TOKEN”
在改造中,
您需要将密钥传递给@GET
。但是您正在传递“授权:令牌”
所以您需要这样做。
@GET("/user/repos")
fun getAllUserRepos(
@Header("Authorization") accessToken: String
): Call<List<RepoJson>>
致电
getAllUserRepos("token $VALID_TOKEN")