J'ai essayé de comprendre comment utiliser RoboSpice avec Spring pour télécharger un fichier sur mon serveur, mais je ne trouve pas d'exemple qui fonctionne. De l'exemple que je ne trouve, je construisais:Téléchargement de fichiers RoboSpice avec Spring sur Android
class UploadJsonRequest extends SpringAndroidSpiceRequest<APIResponseUpload> {
public UploadJsonRequest() {
super(APIResponseUpload.class);
}
@Override
public APIResponseUpload loadDataFromNetwork() throws Exception {
MultiValueMap<String, Object> parts = new LinkedMultiValueMap<String, Object>();
for(org.calflora.observer.model.Attachment a : o.attachments){
parts.add(a.name, new FileSystemResource(a.localPath));
}
//parts.add("record", base);
return getRestTemplate().postForObject(URI, parts, APIResponseUpload.class);
}
}
return new UploadJsonRequest();
Cependant, cela me donne l'erreur:
Caused by: org.springframework.web.client.HttpClientErrorException: 404 err: org.apache.commons.fileupload.FileUploadBase$InvalidContentTypeException: the request doesn't contain a multipart/form-data or multipart/mixed stream, content type header is application/json;charset=UTF-8
OK, cela semble indiquer que je dois faire quelque chose de plus pour indiquer les données doivent être transmises en utilisant multipart/form-data. Si c'est correct, comment cela est-il fait? Si ce n'est pas correct, quelle est l'approche canonique, puisque c'est clairement un besoin commun?
Avez-vous voir ce code? http://stackoverflow.com/q/15769019/321354 – rciovati
Oui. Vous remarquerez que ce code est presque le même que le mien. J'ai essayé de l'utiliser, mais il contient une référence à 'UploadRequestModel' qui n'est pas expliquée, et qui ne semble pas exister dans les fichiers jars que j'ai installés - donc évidemment, il ne serait pas construit. Pouvez-vous me donner un aperçu à ce sujet? – deepwinter