【问题标题】:Spring RestTemplate can not convert json responseSpring RestTemplate 无法转换 json 响应
【发布时间】:2017-08-18 13:55:06
【问题描述】:

我有网址 - http://hzhzhz

返回 json

{
    "someField": 3,
    "datesField": ["2017-08-19",
    "2017-08-20",
    "2017-08-26",
    "2018-12-30"]
}

我创建模型

@Data
@NoArgsConstructor
private class Response{
    private int someField;
    private DatesField datesField;
}

@Data
@NoArgsConstructor
private class DatesField{
    private List<String> strings;
}

我创造

ResponseforObject = restTemplate.getForObject("http://hzhzhz", Response.class);

我得到错误:

Could not extract response: no suitable HttpMessageConverter found for response type [class mypackeg.Response] and content type [text/html;charset=utf-8]

【问题讨论】:

  • 尝试以字符串形式获取响应并查看服务返回的内容。

标签: java spring resttemplate


【解决方案1】:

您的 "http://hzhzhz" 调用返回的 HTML 无法转换为 mypackeg.Response 类。

可能是 URL 错误或生成错误的内容类型(HTML 而不是预期的 JSON 或 XML)。要修复尝试返回 String.class 并检查字符串中的确切内容。

另一个可能的原因是权限被拒绝,它返回访问被拒绝的 HTML 页面。

【讨论】:

    【解决方案2】:

    http://hzhzhz端点更改为返回

    content type = 'application/json'
    

    如果 http://hzhzhz 是由 spring 制作的,请在请求映射中使用它

    produces = "application/json"
    

    【讨论】:

      【解决方案3】:

      如果你使用 spring 控制器,你应该将生产更改为“application/json”

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2011-06-03
        • 2023-02-24
        • 1970-01-01
        • 1970-01-01
        • 2020-08-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多