Retrofit2'yi kullanarak sunucuya dosya göndermeye çalışıyorum. Her şeyi belgelere göre yapıyorum, ancak her zaman 400 sunucu hatası alıyorum.Retrofit - Multipart istek: Gerekli MultipartFile parametresi 'dosya' mevcut değil
böyle yapmaya çalıştım ediyorum:
RequestBody body =
RequestBody.create(MediaType.parse("image/png"), photo);
//..........
@Multipart
@POST(ADD_PHOTO)
Observable<HPSPhotoResponse>
addPhoto(@Part("file") RequestBody file);
... ve bunun gibi:
MultipartBody.Part part = MultipartBody.Part.createFormData("file", "file", body);
//...........
@Multipart
@POST(ADD_PHOTO)
Observable<HPSPhotoResponse>
addPhoto(@Part("file") MultipartBody.Part files);
does't konuyu. Sonuç her zaman aynıdır "Çoklu talep: Gerekli MultipartFile parametresi 'dosyası' mevcut değil - sunucu yanıtı.
Sunucudaki ilkbaharın iyi çalıştığını düşünmüyorum ama Swift (iOS) üzerinde eşdeğer kodu yapıyorum ve işe yarıyor! Burada Sunucu bu 'dosya' bölümünü görüyor.
Alamofire.upload(method, endpoint, headers: headers,
multipartFormData: { multipartFormData in
multipartFormData.appendBodyPart(fileURL: self.filePath!, name: "file")
}
Şimdi Android'de Retrofit ile çalışmasını istiyorum. Ancak, Retrofit isteklerinin günlüklerine bakıyorum ve aslında günlüklerde herhangi bir 'dosya' metni göremiyorum.
Bunun nesi var?
Evet !!! En büyük teşekkürler ki ben :) !!! Yardım etti. ... Asıl sorun tam olarak "retrofit: 2.0.0" yerine "..retrofit: 2.0.1" uyarlamasıydı. Bu sürümde "MultipartBody.Part" no'lu ek açıklamada yanlış bir şey var ve bende iOS gibi çalıştım. Tekrar teşekkürler. –
Parametre ile görüntü nasıl gönderilir? Parametre ile görüntü eklediysem java.lang.IllegalArgumentException: @Parch parametrelerinin MultipartBody.Part kullanılarak eklenmesi, ek açıklamada bir parça adı içermemelidir – Suman
@Suman Aylarca retrofit ile test edilmedim Ancak, yukarıdaki @ kodumda veya @ http://square.github.io/retrofit/ – BNK