我正在嘗試使用其方法之一將標頭添加到 restTemplate 中exchange。在標題中,我放置了令牌訪問權限,我們可以使用它進行訪問。我得到的錯誤是我沒有授權,401 狀態正在回饋。任何建議我做錯了什么?
HttpHeaders headersAuth = new HttpHeaders();
headersAuth.set(HttpHeaders.ACCEPT,MediaType.APPLICATION_JSON_VALUE);
HttpEntity<?> entityAuth = new HttpEntity<>(headersAuth);
String urlTemplateAuth = UriComponentsBuilder.fromHttpUrl("some url")
.encode()
.toUriString();
Map<String,String> queryParamsAuth = new HashMap<>();
queryParamsAuth.put("Authorization",tokenValue); //here is my token access
ResponseEntity <UserGetPhoneDto> userGetPhoneDtoResponseEntity = restTemplate.exchange(urlTemplateAuth,HttpMethod.GET,entityAuth,UserGetPhoneDto.class,queryParamsAuth);
//here i am getting error of 401 status
uj5u.com熱心網友回復:
您尚未將令牌設定為標頭,您在查詢引數中設定了它。可以headersAuth.setBearerAuth()用來設定不記名令牌,也可以setBasicAuth()用來設定用戶名和密碼。將其放入標題的另一種方法:
headersAuth.set(HttpHeaders.AUTHORIZATION, token);
OAuth2 服務器也可以在名為“access_token”的查詢引數中檢索您的令牌。
uj5u.com熱心網友回復:
您的代碼不會將令牌放入請求標頭中。
HttpHeaders headersAuth = new HttpHeaders();
headersAuth.set(HttpHeaders.ACCEPT,MediaType.APPLICATION_JSON_VALUE);
String urlTemplateAuth = UriComponentsBuilder.fromHttpUrl("some url")
.encode()
.toUriString();
Map<String,String> queryParamsAuth = new HashMap<>();
headersAuth.put("Authorization",tokenValue); //here is put it into headers
HttpEntity<?> entityAuth = new HttpEntity<>(headersAuth);//build entity by header
//exchange...
您可以閱讀此檔案以了解有關 http 的更多資訊。 https://developer.mozilla.org/en-US/docs/Web/HTTP
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/496910.html
