【发布时间】:2021-02-11 18:40:52
【问题描述】:
我是 JWT 的新手,所以我需要从 webService(GET 方法)获取带有 JAVA 代码的令牌。
我使用了这个 java 代码,但经常返回 Response Code : 403
String url = "https://WEBSERVICE_LINK";
try {
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
this.log.info("Sending 'GET' request to URL : " + url);
con.setRequestProperty("Authorization", Base64.getEncoder().encodeToString((username + ":" + pwd).getBytes()));
con.setRequestProperty("Accept", "application/json");
int responseCode = con.getResponseCode();
this.log.info("Response Code : " + responseCode);
StringBuilder response;
try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()))) {
String inputLine;
response = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
}
String reponseString = response.toString();
ObjectMapper objectMapper = new ObjectMapper();
JsonNode jsonNode = objectMapper.readTree(reponseString);
// Isoler et transmettre le Token
this.token = jsonNode.get("token") != null ? jsonNode.get("token").asText() : null;
this.log.info("Token : " + this.token);
谢谢
【问题讨论】:
-
你试过在token前加Bearer吗?像这样 - “Bearer” + authToken
-
我需要令牌所以你的意思是这样
con.setRequestProperty("Authorization", "Bearer " + Base64.getEncoder().encodeToString((username + ":" + pwd).getBytes()));? -
是的,尝试在令牌前添加 Bearer
-
我也有
RESPONSE 403,尽管它在邮递员中使用相同的登录名和密码