如何在RestTemplate对象的帮助下将数据获取到我的Bean类中



我是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"

如果我使用类型为String的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)请任何机构帮助我

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

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

最新更新