【问题标题】:Rest assured testing - API request 401 bad request放心测试——API request 401 bad request
【发布时间】:2018-10-02 00:39:14
【问题描述】:

我在通过邮递员或 Java 库“io.restassured”发送 API 请求时遇到问题。 当我在 UI 上执行相同的操作时,请求会返回正确的响应,但是当我通过邮递员或 java 代码尝试相同的操作时,我得到:

401 Bad request

您的浏览器发送了无效请求 要求。

java代码

       public static void main(String[] args) {

        String requestUrl = "exampleBaseUrl/app/reports/api/rest/v1/graphs?context=shipper&reports_type=freights";

 Response response = RestAssured.given().relaxedHTTPSValidation().header("x-csrf-token", "18ea65e740eb0ddddadf0ef435d92564").
            when().
            get(requestUrl);
    }

我认为身份验证有问题,因为在开发工具中我可以看到 CSRF_token 的 Get 请求,它看起来像这样:

令牌的端点:

/login?get_csrf_token

对于这个请求,我得到以下响应:

{"csrf_token":"18ea65e740eb0ddddadf0ef435d92564"}

我不知道如何解决这个问题,我还尝试通过向令牌的端点/login?get_csrf_token 发送获取请求来通过 java 代码获取令牌 这个得到我的 HTML 响应,用户名和密码输入为空。

【问题讨论】:

    标签: java rest api authentication csrf


    【解决方案1】:

    错误 401 表示您的请求未获授权。

    对于授权,通常在登录时会给您一个令牌,您必须将其保存在缓存/本地内存中,并且每当您与服务器通信时,您都必须将其添加到您的请求标头中(供您自己介绍到服务器)

    在您的情况下,您似乎可以在登录后从/login?get_csrf_token 获取令牌。请注意,您不需要登录服务的授权。

    现在,从服务器获取令牌后,如何将其添加为请求标头? See REST Assured Documentation

    【讨论】:

    • 谢谢你的解释,明天去玩
    猜你喜欢
    • 1970-01-01
    • 2012-10-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多