【问题标题】:Get specific response value from the API in SpringBoot从 SpringBoot 中的 API 获取特定的响应值
【发布时间】: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);
    }

【问题讨论】:

标签: spring spring-boot spring-mvc microservices rest


【解决方案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") 并且它有效。无论如何,感谢您的宝贵时间!
    猜你喜欢
    • 2021-07-20
    • 2019-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多