Ich versuche, Datei auf dem Server mit Retrofit2 zu senden. Ich mache alles entsprechend Dokumentation, bekomme aber immer 400 Serverfehler.Retrofit - Multipart Anfrage: Erforderlich MultipartFile Parameter 'Datei' ist nicht vorhanden
ich versucht, wie dies zu tun:
RequestBody body =
RequestBody.create(MediaType.parse("image/png"), photo);
//..........
@Multipart
@POST(ADD_PHOTO)
Observable<HPSPhotoResponse>
addPhoto(@Part("file") RequestBody file);
... und wie folgt aus:
MultipartBody.Part part = MultipartBody.Part.createFormData("file", "file", body);
//...........
@Multipart
@POST(ADD_PHOTO)
Observable<HPSPhotoResponse>
addPhoto(@Part("file") MultipartBody.Part files);
does't Angelegenheit. Ergebnis ist immer das gleiche "Multipart Anfrage: Erforderlich MultipartFile Parameter 'Datei' ist nicht vorhanden" - Server-Antwort.
Ich würde denken, dass Frühling auf dem Server funktioniert nicht gut, aber ich mache den entsprechenden Code auf Swift (iOS) und es funktioniert! Hier sieht Server diesen 'Datei' Teil.
Alamofire.upload(method, endpoint, headers: headers,
multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(fileURL: self.filePath!, name: "file")
}
Jetzt möchte ich es funktioniert auf Android mit Retrofit. Aber ich schaue sogar in Protokolle der Retrofit-Anfragen und in der Tat sehe ich keine 'Datei' Text in den Protokollen.
Was ist daran falsch?
Ja !!! Besten Dank, dass ich :) !!! Es hat geholfen. ... Das Hauptproblem bestand genau im Nachrüsten "... nachrüsten: 2.0.0" statt "..nachrüsten: 2.0.1". In dieser Version stimmt etwas nicht mit der Annotation "MultipartBody.Part" Ich habe es geändert und es hat Arbeit genau wie iOS bekommen. Danke noch einmal. –
Wie Bild mit Parameter senden? Wenn ich Bild mit Parameter dann java.lang.IllegalArgumentException hinzufügen: @Part Parameter, die das MultipartBody.Part verwenden, dürfen keinen Teilnamen in der Annotation enthalten – Suman
@Suman Ich habe nicht mit Retrofit seit Monaten getestet Sie können jedoch versuchen, "@Part (" description ") RequestBody description" als meinen Code oben oder unter http://square.github.io/retrofit/ – BNK