如何将令牌设置为 Java 中获取请求的 HTTPHeader?

Posted

技术标签:

【中文标题】如何将令牌设置为 Java 中获取请求的 HTTPHeader?【英文标题】:How do you set a token as an HTTPHeader for a get request in java? 【发布时间】:2018-11-01 18:11:48 【问题描述】:

我正在尝试编写一个测试来接收来自 API 的 JSON 响应,并且我需要在 API 调用的标头中设置一个安全令牌。我已经验证我从 get/token API 接收到一个有效的令牌。当我尝试执行 HttpGet 时,我收到 401 状态代码。 更新:有人有完整的授权令牌类型列表吗?

public void listAllDoctors() throws IOException 

    String listAllDoctors = "/api/doctors/search";

    HttpGet getDEV = new HttpGet(DEVBASE_ENDPOINT + listAllDoctors);
    getDEV.setHeader(HttpHeaders.AUTHORIZATION, "token " + TOKEN);
    getDEV.setHeader(HttpHeaders.CONTENT_TYPE, "application/json");

    response = client.execute(getDEV);

    int actualStatus = response.getStatusLine().getStatusCode();
    assertEquals(actualStatus, 200);

【问题讨论】:

我们需要更多信息。 API 需要什么样的令牌(例如 Basic、Bearer、Digest 等)?这应该记录在您使用的 API 中。此外,您可能需要"token" 中的空格,即"token " + TOKEN。一旦您知道令牌的类型,请将其放入字符串中。例如"Bearer " + TOKEN. API 文档说它是“GUID”类型。我正在尝试向开发人员寻求帮助,但没有得到太多回应。 我发现 API 使用了自定义标头令牌身份验证。所以这行代码是这样的:getDev.setHeader("token", "Token value goes here"); 【参考方案1】:

我发现 API 使用了自定义标头令牌身份验证。所以这行代码是这样的:

getDev.setHeader("token", "Token value goes here");

【讨论】:

以上是关于如何将令牌设置为 Java 中获取请求的 HTTPHeader?的主要内容,如果未能解决你的问题,请参考以下文章