【问题标题】:how to get the data into my Bean class with the help of RestTemplate object?如何在 RestTemplate 对象的帮助下将数据放入我的 Bean 类?
【发布时间】:2013-07-02 11:34:27
【问题描述】:

我是使用 RestTemplates 的新手。在我的应用程序中,我尝试使用 post 方法发送请求,如下所示

        HttpHeaders requestHeaders = new HttpHeaders();
        requestHeaders.setContentType(new MediaType("application","json",Charset.forName("UTF-8")));
        requestHeaders.add("username", "sai3");
        requestHeaders.add("password", "x");
        requestHeaders.add("device_id", device_id);

        HttpEntity<String> requestEntity = new HttpEntity<String>(requestHeaders);
        // Create a new RestTemplate instance
        RestTemplate restTemplate = new RestTemplate();
        restTemplate.getMessageConverters().add(new MappingJacksonHttpMessageConverter());

`       restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
        ResponseEntity<GetResponseBean> responseEntity1 = restTemplate.exchange(url, HttpMethod.POST, requestEntity, GetResponseBean.class);
        obj = responseEntity1.getBody();

        Log.v("GetDataResponse", "result message : "+obj);

对于上述代码,我使用了"spring-android-core-1.0.1.RELEASE.jar""spring-android-rest-template-1.0.1.RELEASE.jar""jackson-all-1.9.8.jar"

如果我使用 ResponseEntity 类型是字符串,那么它会返回良好的响应,但是如果我更改 ResponseEntity 类型 GetResponseBean 类型,那么我会收到如下错误:

Caused by: org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [com.example.springsxmlposting.GetResponseBean] and content type [text/html]

GetResponseBean类如下:

public class GetResponseBean {

    String result = null;
    String message = null;

    public void setmResult(String result) {
        this.result = result;
    }

    public String getmResult() {
        return result;
    }

    public void setmMessage(String message) {
        this.message = message;
    }

    public String getmMessage() {
        return message;
    }

}

如何将数据放入我的 bean 类 (GetResponseBean) 请任何人帮助我

【问题讨论】:

    标签: android exception post resttemplate


    【解决方案1】:

    我认为问题出在您的服务器上。您正在发送content-type: application/json,但正如您在错误中看到的那样,它表明您收到的响应是text/html 而不是application/json

    我的猜测是,您得到的响应是一个错误 html 页面,表明您没有返回 application/json 的请求。您可以尝试使用外部工具将请求发送到服务器。使用相同的标头执行 POST 请求,我敢打赌你会得到一个 HTML 错误页面。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-02-15
      • 2019-12-22
      • 2016-04-09
      • 1970-01-01
      • 2012-05-07
      • 1970-01-01
      相关资源
      最近更新 更多