从 SpringBoot 中的 API 获取特定的响应值

Posted

技术标签:

【中文标题】从 SpringBoot 中的 API 获取特定的响应值【英文标题】:Get specific response value from the API in SpringBoot 【发布时间】:2021-04-14 05:21:39 【问题描述】:

我正在拨打一个电话并收到如下回复:

现在我想获取访问令牌的值并执行一些逻辑。如何从响应中获取价值?任何人都可以请帮忙。 API的服务代码。

public String getToken(User user) throws JsonMappingException, JsonProcessingException 
        ObjectMapper mapper = new ObjectMapper();
        System.out.println(clientId+clientPass);
        String plainCreds = clientId+":"+clientPass;
        byte[] plainCredsBytes = plainCreds.getBytes();
        byte[] base64CredsBytes = Base64.getEncoder().encode(plainCredsBytes);
        String base64Creds = new String(base64CredsBytes);
        HttpHeaders headers = new HttpHeaders();
        headers.add("Authorization", "Basic " + base64Creds);
        HttpEntity<String> request=new HttpEntity<String>(headers);
        String uri = url+ user.getUser_id()
                + "&password=" + user.getPassword();
        RestTemplate restTemplate = new RestTemplate();
        
        ResponseEntity<String> result = restTemplate.exchange(uri, HttpMethod.POST, request, String.class) ;
        JsonNode newNode = mapper.readTree(result.getBody());
        ObjectNode node = ((ObjectNode) newNode).put("Authentication", "Successful");
        
        return mapper.writerWithDefaultPrettyPrinter().writeValueAsString(node);
    

【问题讨论】:

也许这很有用:appsdeveloperblog.com/… 【参考方案1】:

我能够弄清楚。 我用过

node.get("access_token")

它成功了!

【讨论】:

【参考方案2】:

你可以写 DTO 来响应:

public class ResponseSample 
   @JsonProperty("access_token")
   String accessToken;
   ....

(或反序列化为 Map) 而是打电话给ResponseEntity&lt;String&gt; result = restTemplate.exchange(...) 你可以打电话

ResponseEntity<ResponseSample> result = restTemplate.exchange(..., ResponseSample.class)

【讨论】:

我使用了 node.get("access_token") 并且它有效。无论如何,感谢您的宝贵时间!

以上是关于从 SpringBoot 中的 API 获取特定的响应值的主要内容,如果未能解决你的问题,请参考以下文章

我怎样才能通过在请求中传递特定参数来获取它们? SpringBoot API

从 ASP.NET CORE Web Api 获取 React 中的特定响应标头(例如,Content-Disposition)

使用 JSON 从 API 中提取特定值的问题

从数组中的所有对象中获取特定键的值

如何从 api 响应中获取特定的字符串?

如何从 API 获取和显示特定 JSON 数据的正确方法