我有一个情况,我正在使用spring andorid apis来做PUT操作。服务(后端)需要自定义对象的 xml 表示。并且内容类型为“原始”。我正在使用 SimpleXmlHttpMessageConverter() 将自定义对象序列化为 xml 并将内容类型设置为“原始”。但这是失败并引发以下异常,
“org.springframework.web.client.RestClientException:无法写入请求:没有为请求类型 [com.test.myClass] 找到合适的 HttpMessageConverter”。
自定义对象类如下所示,
@Root
public class MyClass
{
@Element
private long id_;
@Element
private String info_;
@Element
private long token_;
public long getId() {
return id_;
}
public String getInfo() {
return info_;
}
public long getToken() {
return token_;
}
public void setId(long id_) {
this.id_ = id_;
}
public void setInfo(String info_) {
this.info_ = info_;
}
public void setToken(long token_) {
this.token_ = token_;
}
}
请求 PUT 操作的代码如下,
RestTemplate restTemplate = new RestTemplate();
restTemplate.getMessageConverters().add(new SimpleXmlHttpMessageConverter());
HttpHeaders headers = new HttpHeaders();
headers.setContentType(new MediaType("application","Raw"));
HttpEntity<MyClass> requestEntity = new HttpEntity<MyClass>(myClass, headers);
ResponseEntity<String> responseEntity = restTemplate.exchange(url,
HttpMethod.PUT, requestEntity, String.class);
HttpStatus status = responseEntity.getStatusCode();
这会在调用 restTemplate 交换期间引发异常。如何解决这个问题,有什么建议吗?Spring Android 是否支持 Raw 类型?