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

Rest Assured中Authorization Token验证失败问题求助

问题排查:Rest Assured添加Authorization Token仍提示认证失败

我在使用Rest Assured调用API时已添加Authorization Token,但仍收到认证失败提示,且该Token在Postman中可正常使用。

代码示例

package com.automation.tests;

import static io.restassured.RestAssured.*;
import org.json.JSONObject;
import io.restassured.response.Response;
import io.restassured.specification.RequestSpecification;

public class AspenTest {
    public static void main(String[] args) {
        JSONObject churnUsageBody = new JSONObject();
        churnUsageBody.put("customer_id", "c096");
        
        RequestSpecification sp = given().baseUri("http://192.168.180.12:4000/")
        .header("Content-Type", "application/json")
        .header("X-CSRFToken", "EZpbczzL5yiBHKT0fn2PcfPszp0IfHwPLn3pmXJYA8BX8bH6Gn6ILrlAJPSuX1uq")
        .header("Authorization", "Token d2618176b9b9aed6dc0a9cb3a1ebfe1c4c8831ed999bdce4432e061aa56f672f")
        .body(churnUsageBody.toString());
        
        Response rs =  sp.post("churn/app/usgscore");
        System.out.println(rs.asPrettyString());
    }
}

返回错误信息

{
    "detail": "Authentication credentials were not provided."
}

排查建议

  • 校验Authorization头格式:确认「Token」与后续令牌字符串之间只有一个空格,无多余空格或缺失。
  • 对比Postman请求头:在Postman中开启请求日志,导出完整请求头,与Rest Assured代码中的头信息逐一比对,注意Header名称的大小写(部分服务对大小写敏感)。
  • 使用Rest Assured专属Auth方法:替换手动添加Header的方式,尝试用框架提供的认证方法:
    .auth().oauth2("d2618176b9b9aed6dc0a9cb3a1ebfe1c4c8831ed999bdce4432e061aa56f672f")
    
    或者明确拼接Token:
    .header("Authorization", "Token " + "d2618176b9b9aed6dc0a9cb3a1ebfe1c4c8831ed999bdce4432e061aa56f672f")
    
  • 关闭自动重定向:部分API会触发重定向,导致请求头丢失,可尝试禁用自动跟随重定向:
    .redirects().follow(false)
    
  • 打印完整请求日志:在代码中添加日志打印,确认实际发送的请求头是否与预期一致:
    RequestSpecification sp = given().baseUri("http://192.168.180.12:4000/")
          .header("Content-Type", "application/json")
          .header("X-CSRFToken", "EZpbczzL5yiBHKT0fn2PcfPszp0IfHwPLn3pmXJYA8BX8bH6Gn6ILrlAJPSuX1uq")
          .header("Authorization", "Token d2618176b9b9aed6dc0a9cb3a1ebfe1c4c8831ed999bdce4432e061aa56f672f")
          .body(churnUsageBody.toString())
          .log().all();
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 14:15:54