如何从 HttpClient 获取 Bearer Token?

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

我正在尝试通过 HttpClient 发送 POST 请求,但服务器响应显示“未经授权”错误。我如何获得 Bearer Token?我搜索了解决方案,但我不明白..

那是我的代码,我不知道如何获得请求的令牌...

HttpPost request = new HttpPost("http://domain...");
request.setHeader(HttpHeaders.ACCEPT, "application/json, text/plain, */*");
request.setHeader(HttpHeaders.CONTENT_TYPE, "application/#json");
request.setHeader(HttpHeaders.ACCEPT_LANGUAGE, "de,en-US;q=0.7,en;q=0.3");
request.setHeader(HttpHeaders.ACCEPT_ENCODING, "gzip, deflate, br");
request.setHeader(HttpHeaders.REFERER, "https://domain...");
request.setHeader("DNT", "1");
request.setHeader(HttpHeaders.HOST, "host..");
String authToken = ""; // ... ?
request.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + authToken);
StringEntity params = new StringEntity("{}");
params.setContentEncoding("UTF-8");
request.setEntity(params);
response = this.getHttpClient().execute(request);
java oauth authorization httpclient bearer-token
2个回答
0
投票

首先,您必须使用用户名和密码(使用 HTTP 调用)对用户进行身份验证,然后您将获得令牌作为响应,您可以将其添加到标头中的下一个 POST 调用中。

在您的 POST 调用之前需要一个 get/post 调用,这样您将获得令牌。 相同的令牌可用于所有进一步的调用。


0
投票

似乎您正在尝试访问某些 API,这要求您在访问实际 API 之前首先获得一些访问令牌(不记名令牌)。

大多数流程涉及两个步骤,如下所述。

步骤 1. 使用基本身份验证获取不记名令牌(下面的端点和参数是示例值,对于您的 API 会有所不同)

POST /授权
`request.setHeader(HttpHeaders.AUTHORIZATION, "Basic" + authToken);`

第二步: 第 1 步将为您提供某种访问令牌作为响应。您需要使用它来进行任何后续 API 调用。

GET /学生/马克
`request.setHeader(HttpHeaders.AUTHORIZATION, "Bearer" + authToken);`

您可以在 OAuth 2.0 Bearer Token 到底是什么?

阅读更多关于不记名令牌的信息

如果您仍然有任何疑问或无法使用我提到的方法访问您的 API,请告诉我。

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