【问题标题】:Robospice upload file with SpringAndroidSpiceRequestRobospice 使用 SpringAndroidSpiceRequest 上传文件
【发布时间】: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()); ,尽管根据文档,这不是必需的,因为它是。

标签: android spring robospice


【解决方案1】:

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

史蒂芬

【讨论】:

    【解决方案2】:
            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 hereconverter 这会有所帮助

    【讨论】:

      猜你喜欢
      • 2013-04-03
      • 2013-10-18
      • 2014-02-26
      • 1970-01-01
      • 2017-11-21
      • 2014-08-15
      • 1970-01-01
      • 2019-02-16
      • 2011-08-16
      相关资源
      最近更新 更多