1

我是RoboSpice的新手。我正在尝试上传文件。但我收到了这个错误:

 04-02 17:47:31.151: E//RequestProcessor.java:234(11021): org.springframework.web.client.RestClientException: Could not extract response: no suitable HttpMessageConverter found for response type [java.lang.String] and content type [text/html]

.这是我的请求类:

public class UploadFileRequest extends SpringAndroidSpiceRequest<String>{
private static final String TAG = "UploadFileRequest";
private UploadRequestModel requestModel;
private String link;

public UploadFileRequest(UploadRequestModel model, String link) {
    super(String.class);
    requestModel = model;
    this.link = link;
}

@Override
public String loadDataFromNetwork() throws Exception {    


    MultiValueMap<String, Object> parts = new LinkedMultiValueMap<String, Object>();
    parts.add("file1", new FileSystemResource(requestModel.getFile1()));
    parts.add("file2", new FileSystemResource(requestModel.getFile1()));
    return getRestTemplate().postForObject(link, parts, String.class);


}

}

我正在使用:JacksonSpringAndroidSpiceService 类。

非常感谢您的帮助。

4

2 回答 2

3

JacksonSpringAndroidSpiceService 源代码application/json中可以看出,它通过类提供了一个仅用于内容类型的转换器MappingJacksonHttpMessageConverter

对于任何其他内容类型,Spring 都不知道如何处理它。

您可以轻松地添加具有StringHttpMessageConverter类子类化的通用型转换器,JacksonSpringAndroidSpiceService或基于其源代码创建您自己的实现。

于 2013-04-02T13:37:27.170 回答
2

我有一个类似的问题并用以下方法解决了

代替

return getRestTemplate().postForObject(link, parts, String.class);

RestTemplate restTemplate = getRestTemplate();
restTemplate.getMessageConverters().add(new StringHttpMessageConverter());
return restTemplate.postForObject(link, parts, String.class);

希望这可以帮助!

于 2013-04-29T00:12:16.283 回答