如何将令牌设置为 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?的主要内容,如果未能解决你的问题,请参考以下文章

改造无法将新令牌设置为请求标头

如何将承载令牌添加到 HTTP 请求的标头?

如何使用身份验证过滤器将标头设置为令牌请求 OAuth?

将 paypal curl 获取访问令牌请求转换为 guzzle

如何暂停http请求,直到在localstorage中收到并记录令牌?

如何设置 katana-project 以允许 json 格式的令牌请求?