You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rest Assured接口测试复用登录响应token失败,后续请求报401未授权如何解决

问题根因与解决建议

核心错误点

  • 认证参数位置错误:你当前通过queryParam传递Authorization参数,JWT认证接口通常要求将凭证放在HTTP请求头中,而非URL查询参数
  • 认证格式不完整:标准JWT认证请求头需要携带Bearer 前缀,不能直接拼接原始token字符串
  • 多余认证信息干扰:更新用户请求中保留了登录接口用的Basic Auth配置,该接口使用JWT认证,不需要额外的Basic Auth,可能会导致服务端认证逻辑冲突

修复后的代码示例

JSONObject childJSONSub = new JSONObject();      
childJSONSub.put("email", "user@yahoo.com");          
childJSONSub.put("bio", "My New Bio");       
childJSONSub.put("image", "https://i.sstatic.net/sad3.jpg");  

JSONObject requestSub = new JSONObject();        
requestSub.put("user", childJSONSub); 

given().            
    header("Content-Type", "application/json")
    // 改为请求头传递,补充Bearer前缀
    .header("Authorization", "Bearer " + token)
    .body(requestSub)
.when()             
    .put("https://BASEuri.com/api/user")
.then()    
    .log().all();

补充排查方案

如果修改后仍报相同错误,可以按以下步骤排查:

  • 在given()后追加.log().all()打印完整请求信息,确认Authorization头是否正确传递、token值是否正常
  • 校验登录接口提取的token是否完整,避免提取时多带了引号、空格等多余字符
  • 若接口文档有特殊要求,可替换前缀Bearer 为Token 或其他指定前缀

内容的提问来源于stack exchange,提问作者PiTu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.18 08:06:04