簡體   English   中英

我如何從 HttpClient 獲取承載令牌?

[英]How i can get the Bearer Token from HttpClient?

我正在嘗試通過 HttpClient 發送 POST 請求,但服務器響應顯示“未經授權”錯誤。 我如何獲得不記名令牌? 我搜索了解決方案,但我不明白..

那是我的代碼,我不知道如何獲得請求的令牌...

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);

首先,您必須使用用戶名和密碼(使用 HTTP 調用)對用戶進行身份驗證,然后您將獲得令牌作為響應,您可以將其添加到標題中的下一個 POST 調用中。

在 POST 調用之前需要一個 get/post 調用,以便您擁有令牌。 相同的令牌可用於所有進一步調用。

似乎您正在嘗試訪問某些 API,這要求您在訪問實際 API 之前先獲取一些訪問令牌(承載令牌)。

大多數流程包括兩個步驟,如下所述。

步驟 1.使用基本身份驗證獲取承載令牌(以下端點和參數是示例值,您的 API 會有所不同)

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

第 2 步:第 1 步將為您提供某種訪問令牌作為響應。 您需要使用它來進行任何后續 API 調用。

GET /Student/Mark
`request.setHeader(HttpHeaders.AUTHORIZATION, "Bearer " + authToken);`

您可以在什么是 OAuth 2.0 不記名令牌確切地閱讀有關不記名令牌的更多信息

如果您仍然有任何疑問或無法使用我提到的方法訪問您的 API,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM