提取反应身体放心

问题描述 投票:0回答:1

我有一个API,需要发布请求才能获取访问令牌。下面是代码:

private String getToken() {
        RestAssured.baseURI = "https://raudhahku.com.my/api/v1/oauth/token";

        requestSpecification = RestAssured.given();
        JSONObject requestParams = new JSONObject();
        requestParams.put("grant_type", "client_credentials");
        requestParams.put("client_id", 1);
        requestParams.put("client_secrets", "Gsv7brPlt5fIpqa1ebFc5A1uHwDJBPY6TRaMm8wa");

        requestSpecification.header("Content-Type", "application/json");
        requestSpecification.body(requestParams.toString());
        response = RestAssured.post();
        int statusCode = response.getStatusCode();
        System.out.println(statusCode);
        return response.body().jsonPath().getString("access_token");
    }

我不知道如何从以下数据中提取访问令牌:

> {
>     "data": {
>         "token_type": "Bearer",
>         "expires_in": 850216799,
>         "access_token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImp0aSI6ImM0Mjc0NmE1YWI3ZTk4ZWQwNjViZDc1Y2E3ZDQ1N2M5YzY3MjM0YTNiZjJjY2Q5ZTAxMDg1MzU0N2UyNGIzNDFkNWM2YmJmMjJiMmMxYjA3In0.eyJhdWQiOiIxIiwianRpIjoiYzQyNzQ2YTVhYjdlOThlZDA2NWJkNzVjYTdkNDU3YzljNjcyMzRhM2JmMmNjZDllMDEwODUzNTQ3ZTI0YjM0MWQ1YzZiYmYyMmIyYzFiMDciLCJpYXQiOjE3MDQyNDI0MDAsIm5iZiI6MTcwNDI0MjQwMCwiZXhwIjoyNTU0NDU5MTk5LCJzdWIiOiIiLCJzY29wZXMiOltdfQ.BeCx2TZ3YUJtvbFIqaUC6pbVc6oVK2BC0dRHH4NX9Uepx29kwDHSrh3BkvwJ-qH5N6nXen0eUJA4oGTqkxppT9MmGIQBSZPS_w5CRCfaaPIFhzRM0ZMkCjtUCL2kUB3nG289pGUIoKNZALcOV4d34zui0U7o7HCls6BTgffaHg3-f6dh6oYvvrQ5AowuzoV6KsembWVeeLQBVcalgSInBn7BOzM4d1UCe3-bpwAm_iGCICmaSAa1ciep1EpwJfpgfdKGf-8g71LuQTrJLU6a_TGxZ7xr4N-UxwB0wjqLjjGOkgPas2onnNiJ9Nt2nfdQmw1zAhcFfszMaLIgX8qeygfp8JZIKj-Npq3CZo6sUh0di7IfnxbuSlkiz9pW5NEsORK_73P_2-459Ul1Mg3gUJ3a88X5HukzqSQBpEZn279-JSCCWGR_7ogczKAi_l6IcnJMfia8D8XVx41BqcrvXoX3uPC36EqxUJRfbvZtnCys8vj8H6a6DVdmaC9ojkS6FmMLHKkOD7phHvOLySpB3xDAYeMLQOZhR3KrMj2tm2MK88kfFR0tL4O9IUknEAGwzummjR-NYfgojh-Pl0mc9Tkj8nHaA5WNyfFbkjZn5wDxnAj9ayhHsyaRX8RyVG3fjV4D0WAR3JKb5CzvzwkuNjjGpH3xWwv7EEgUNS8XtKM"
>     } }

编辑: 请帮助我处理“放心”中的整数被错误解释为字符串的问题。

java rest-assured
1个回答
0
投票

有两件事我们需要纠正。

首先,json-object 的构造中有一个拼写错误:

requestParams.put("client_secrets", "Gsv7brPlt5fIpqa1ebFc5A1uHwDJBPY6TRaMm8wa");

应该是

requestParams.put("client_secret", "Gsv7brPlt5fIpqa1ebFc5A1uHwDJBPY6TRaMm8wa");

(复数与单数)

接下来,当我们提出实际请求时,我们需要基于我们构造的

requestParams
来请求。这个

response = RestAssured.post();

应该改为:

response = requestSpecification.post();

完成这些更改后,我们可以运行

testGetAllLanguages
测试并且它会成功。

您可以在此处找到包含上面列出的更改的补丁 (

gist.github.com
)

© www.soinside.com 2019 - 2024. All rights reserved.