【发布时间】:2013-04-02 16:13:39
【问题描述】:
我正在使用 robospice。现在我想上传文件。 我使用 SpringAndroidSpiceService 并像这样编写自己的请求:
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()));
HttpHeaders headers = new HttpHeaders();
HttpEntity<MultiValueMap<String, Object>> request =
new HttpEntity<MultiValueMap<String, Object>>(parts, headers);
return getRestTemplate().postForObject(link, request, String.class);
}
}
我现在可以发送文件了。但是我遇到了一个问题。 文件发送后。我在磁盘上的文件几乎被删除。它的大小为零。 你知道为什么吗 ?我该如何解决? 非常感谢您的帮助。
【问题讨论】:
-
在上面的代码中,您引用了一个“UploadRequestModel”类型的对象。我找不到关于这个对象的任何文档 - 你能给我一些见解吗?
-
啊。 UploadRequestModel 只是一个 POJO 类。其中我曾经包含文件路径。
-
谢谢,我发现了我的问题 - 与找不到消息转换器有关。沿着 restTemplate.getMessageConverters().add(new FormHttpMessageConverter()); ,尽管根据文档,这不是必需的,因为它是。