【问题标题】:java api REST client for POST ERROR: no suitable HttpMessageConverterPOST ERROR的java api REST客户端:没有合适的HttpMessageConverter
【发布时间】:2017-09-05 16:15:34
【问题描述】:

我使用 Maven + Spring,我想使用 RestTemplate().postForEntity(url, request, responseType) + Content-Type=application/json 但我有这个错误:

org.springframework.web.client.RestClientException: 无法写入请求:没有为请求类型 [com.kizeoforms.model.User] 和内容类型 [application/json] 找到合适的 HttpMessageConverter

java REST 客户端代码:

User user = new User();
user.setUser("foo");
user.setPassword("**********");
user.setCompany("xxxxxx");

MultiValueMap<String, String> headers = new LinkedMultiValueMap<String, String>();
headers.add("Content-Type", "application/json");
HttpEntity<User> request = new HttpEntity<User>(user, headers);
ResponseEntity<Object> response = new RestTemplate().postForEntity("https://www.kizeoforms.com:443/rest/v3/login", request, Object.class);
System.out.println(response.getStatusCode());

【问题讨论】:

    标签: java spring rest api


    【解决方案1】:

    我有new MappingJackson2HttpMessageConverter()restTemplate

    RestTemplate restTemplate = new RestTemplate();
    restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
    ResponseEntity<Object> response = restTemplate.postForEntity("https://www.kizeoforms.com:443/rest/v3/login", request, Object.class);
    

    【讨论】:

      【解决方案2】:

      查看Restemplate构造函数,如果您的项目中包含支持的序列化封装,则会添加相应的消息转换器。所以你可以添加一个依赖包,比如com.google.gson.Gson或者javax.json.bind.Jsonb,那么你就不需要显式处理消息转换了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-06-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-05-24
        相关资源
        最近更新 更多