android - 如何使用注释在改造请求中动态添加授权标头?
问题描述
实际上,我在我的 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
解决方案
我也面临同样的问题,但后来我尝试了类似的东西:
@POST("/task")
fun createTask(@Header("Authorization") authorization, object:Object)
并附Bearer
加到您传递的令牌上,例如
createTask("Bearer ".plus(access_token))
:
此外,您添加的额外冒号似乎会导致错误,删除冒号也可能有效。
推荐阅读
- linux - 无法通过 ssh 的函数调用访问局部变量
- javafx - javafx中的圆形控制
- java - 为 Number 子类生成布尔检查
- python - Python COMError: (-2147024894, 'Das System kann die angegebene Datei nicht finden.', (None, None, None, 0, None))
- android - 适配器之间的 Notifydatasetchanged()
- laravel - laravel 获取 500 响应的错误跟踪
- continuous-integration - 无法连接到 VSTS LocalDB 实例
- oracle - 如何强制 flyway 清理我的 docker oracle 数据库?
- android - 如何在右侧设计带有符号的 Ionic 按钮?
- java - 如何修复 java.io.IOException:服务器返回 HTTP 响应代码:403