2

我正在使用 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);

}

}

我现在可以发送文件了。但是我遇到了一个问题。文件发送后。我在磁盘上的文件几乎被删除。它的大小为零。你知道为什么吗 ?我该如何解决?非常感谢您的帮助。

4

2 回答 2

1

我是 RS 的作者之一。您面临的问题与 RS 没有直接关系,而是与 Spring Android 有关。我建议你写信给他们的论坛以获得答案。对不起,但我们不能告诉你更多。

斯蒂芬妮

于 2013-04-07T06:17:09.883 回答
0
        this.message.setApi_key(ConfigurationBean.getTab_id());
        this.message.setApi_password(ConfigurationBean.getTab_assword());
        this.message.setNursery_id(ConfigurationBean.getNursery_id());          
        url=ConfigurationBean.getNursery_url()+"/api/v1/installation.php";

        try {
            list=service.getConfiguration(admin, pass);

        } catch (Exception e) {
            Log.e("request", ""+e.getMessage());
        }


        // Add the Jackson and String message converters
        restTemplate.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
        restTemplate.getMessageConverters().add(new StringHttpMessageConverter());

        // Make the HTTP POST request, marshaling the request to JSON, and the response to a String
        String response = restTemplate.postForObject(url, message, String.class);

        return response;

这是我的代码,在我遇到同样的问题之前,它工作不正常你可以试试这个消息enter code here转换器,这会有所帮助

于 2014-07-09T12:11:02.547 回答