我是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错误页面。