Sto provando a inviare file sul server utilizzando Retrofit2. Faccio tutto secondo la documentazione, ma ottengo sempre 400 errori del server.Retrofit - Richiesta multipart: Richiesto Il parametro "file" MultipartFile non è presente
che sto cercato di fare in questo modo:
RequestBody body =
RequestBody.create(MediaType.parse("image/png"), photo);
//..........
@Multipart
@POST(ADD_PHOTO)
Observable<HPSPhotoResponse>
addPhoto(@Part("file") RequestBody file);
... e in questo modo:
MultipartBody.Part part = MultipartBody.Part.createFormData("file", "file", body);
//...........
@Multipart
@POST(ADD_PHOTO)
Observable<HPSPhotoResponse>
addPhoto(@Part("file") MultipartBody.Part files);
questione does't. Il risultato è sempre lo stesso "Richiesta multipart: Richiesto il parametro MultipartFile 'file' non è presente" - risposta del server.
Penso che Spring sul server non funzioni, ma faccio il codice equivalente su Swift (iOS) e funziona! Qui Server vede questa parte 'file'.
Alamofire.upload(method, endpoint, headers: headers,
multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(fileURL: self.filePath!, name: "file")
}
Ora voglio che funzioni su Android con Retrofit. Ma guardo anche nei registri delle richieste di Retrofit e in effetti non vedo alcun testo "file" nei log.
Cosa c'è di sbagliato in questo?
Yeah !!! Grazie mille che posso :) !!! Ha aiutato. ... Il problema principale era esattamente nel retrofit "... retrofit: 2.0.0" invece "..retrofit: 2.0.1". In questa versione qualcosa non va con l'annotazione "MultipartBody.Part" L'ho cambiato e ha funzionato esattamente come iOS. Grazie ancora. –
Come inviare un'immagine con parametro se aggiungo immagine con il parametro poi java.lang.IllegalArgumentException:? Parametri @Part utilizzando l'MultipartBody.Part non devono includere un nome parte l'annotazione – Suman
@Suman non ho testato con retrofit per mesi , tuttavia, puoi provare ad usare '@Part (" description ") RequestBody description' come il mio codice sopra o menzionato su http://square.github.io/retrofit/ – BNK