java - 从 postman Spring Mvc 获取时未从resttemplate.exchange 获取响应正文

标签 java spring

我是 Spring MVC 的新手,我使用下面的代码从另一个应用程序获取响应。 4.3.20.发布

ResponseEntity<OtdsOauthToken> response = restTemplate.exchange(builder.toUriString(), HttpMethod.POST, entity, OtdsOauthToken.class); // Getting response object body as null, header is coming and Status is 200

通过代码响应正文:

enter image description here

通过 Postman 响应正文:

enter image description here

最佳答案

因为您尚未显示 OtdsOauthToken 类,所以现在我只能猜测。我认为问题可能是因为您没有为字段设置 JSON 属性名称(带有零食大小写)或/并且可能是该类不包含 getters/setters。 因此,该类必须如下所示:

public class OtdsOauthToken {
    @JsonProperty("access_token")
    private String accessToken;

    private LocalDateTime expiration;

    @JsonProperty("expires_in")
    private Long expiresIn;

    @JsonProperty("token_type")
    private TokenType tokenType;

    public String getAccessToken() {
        return accessToken;
    }

    public void setAccessToken(String accessToken) {
        this.accessToken = accessToken;
    }

    public LocalDateTime getExpiration() {
        return expiration;
    }

    public void setExpiration(LocalDateTime expiration) {
        this.expiration = expiration;
    }

    public Long getExpiresIn() {
        return expiresIn;
    }

    public void setExpiresIn(Long expiresIn) {
        this.expiresIn = expiresIn;
    }

    public TokenType getTokenType() {
        return tokenType;
    }

    public void setTokenType(TokenType tokenType) {
        this.tokenType = tokenType;
    }
}

您还可以配置您的ObjectMapper并省略属性名称的设置。

this.objectMapper.setPropertyNamingStrategy(PropertyNamingStrategy.SNAKE_CASE);

在这种情况下,该类可能看起来像简单的 POJO 类:

public class OtdsOauthToken {
    private String accessToken;
    private LocalDateTime expiration;
    private Long expiresIn;
    private TokenType tokenType;

    //getters ...
    //setters ...
}

关于java - 从 postman Spring Mvc 获取时未从resttemplate.exchange 获取响应正文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60429106/

相关文章:

java - 扩展 CrudRepository,从一列中选择全部?

java - 使用 Mockito 进行依赖注入(inject)的问题

spring - 通过 yaml 或 properties 登录 Elasticsearch

java - 在 JTable 中禁用水平自动滚动

java - Box2d setAngularVelocity 不适用于高速

java - 使用 @ContextConfiguration 运行 spring 集成测试时,应用程序上下文为 null

java - Spring Boot Starters中maven版本是怎么指定的?

Java:为变量分配当前值?

java - 为什么 FileOutputStream 不会抛出 OutOfMemoryException

java - box2d - 更稳定的堆栈