2013-04-02 16 views
2

我正在使用robospice。现在我想上传文件。 我用SpringAndroidSpiceService和写我自己这样的要求:Robospice用SpringAndroidSpiceRequest上传文件

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); 

} 

} 

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

+0

在上面的代码,你参考类型为'UploadRequestModel'的对象。我找不到关于这个对象的任何文档 - 你能给我一些见解吗? – deepwinter

+0

啊。 UploadRequestModel只是一个POJO类。我曾经包含文件路径。 – gZerone

+0

谢谢,我想出了我的问题 - 与消息转换器没有找到。沿着\t的路线restTemplate.getMessageConverters()。add(new FormHttpMessageConverter()); ,但根据文件,这是没有必要的,因为它是。 – deepwinter

回答

1

我是RS的作者。您直接面对的问题与RS无关,但与Spring Android相关。我建议你写信给他们的论坛来获得答案。对不起,但我们不能告诉你更多。

斯特凡

+0

是的。感谢您的信息 – gZerone

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转换器,这将有助于