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