Android ACRA框架HTTP Sender如何配置Bearer认证替代基础认证
ACRA Bearer 认证配置解答
ACRA 原生完全支持Bearer认证需求,无需引入额外第三方工具即可实现,可根据你的Token使用场景选择以下两种方案:
方案1:静态Header配置(适用固定Token场景)
ACRA 的 HTTP Sender 组件原生支持自定义额外请求头,直接通过配置additionalHeaders参数添加Authorization头即可。
示例注解配置代码:
@AcraHttpSender( uri = "你的错误上报服务地址", additionalHeaders = {"Authorization: Bearer 你的实际Token值"}, // 其余原有配置保持不变 )
如果使用代码动态配置,可通过配置Builder设置:
HttpSenderConfigurationBuilder builder = new HttpSenderConfigurationBuilder() .setUri("你的错误上报服务地址") .setAdditionalHeaders(new HashMap<String, String>(){{ put("Authorization", "Bearer 你的实际Token值"); }});
方案2:自定义请求拦截器(适用动态Token场景)
如果你的Bearer Token需要动态生成、定期刷新或者从本地安全存储读取,可通过实现ACRA的HttpRequestInterceptor接口完成头注入:
- 自定义拦截器实现:
public class BearerAuthInterceptor implements HttpRequestInterceptor { @Override public void intercept(HttpRequest request, HttpContext context) throws HttpException, IOException { // 此处添加你的动态Token获取逻辑 String validToken = TokenManager.getValidBearerToken(); request.addHeader("Authorization", "Bearer " + validToken); } }
- 在ACRA配置中注册拦截器:
@AcraCore( httpRequestInterceptors = {BearerAuthInterceptor.class}, // 其余原有配置保持不变 )
注意事项
- Bearer 与Token值之间的空格不可省略,否则会导致服务端解析认证信息失败
- 生产环境禁止硬编码Token值,建议通过安全存储模块动态读取有效Token
- 若Token存在过期逻辑,优先选择自定义拦截器方案,确保每次上报请求携带的是有效Token
内容的提问来源于stack exchange,提问作者Patrik Nespor
相关产品推荐
相关产品推荐

