首页 > 解决方案 > 如何使用注释在改造请求中动态添加授权标头?

问题描述

实际上,我在我的 Android 应用程序中使用了 Retrofit 2(我正在使用 Kotlin),我想执行如下所示的发布请求:

@Headers("Authorization: Bearer: $Constants.TOKEN")
@POST("/task")
fun createTask(object:Object)

当令牌是常量时,请求可以完美运行,但我希望它是动态的。

经过多次搜索,我找到了如下解决方案:

@POST("/task")
fun createTask(@Header("Authorization: Bearer") authorization:String, object:Object)

或者

@POST("/task")
fun createTask(@HeaderMap header:Map<String, String>, object:Object)

当我尝试它时,出现如下错误:

bad request : error at char 0x20 

标签: androidkotlinretrofit2

解决方案


我也面临同样的问题,但后来我尝试了类似的东西:

@POST("/task")
fun createTask(@Header("Authorization") authorization, object:Object)

并附Bearer加到您传递的令牌上,例如

createTask("Bearer ".plus(access_token))

:此外,您添加的额外冒号似乎会导致错误,删除冒号也可能有效。


推荐阅读