1

我有一个情况,我正在使用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 类型?

4

0 回答 0