2015-11-13 7 views
5

Mam problem z wysyłaniem multipartRequest do serwera.wysłać wieloczęściowy z plikami za pomocą modernizacji: 2.0.0-beta1

RequestBody file = RequestBody.create(MediaType.parse("application/json"), myFile); 
     return apiService.updateProfile2(token, file); 


@Multipart 
@POST("/profile/update") 
Call<RegistrationResponse> updateProfile2(@Header(value = "X-AUTH-TOKEN") String toke, @Part(value = "json") RequestBody json); 

Problem:

prośba ciało jest pusta, kiedy przyjdzie do serwera

+0

Próbowałeś z 'TypedFile'? –

+0

@RethinavelPillai nie ma TypedFile w Retroficie 2.0 –

+0

modernizacja: 2.0.0-beta1 nie obsługiwała TypedFile = ( – kadik

Odpowiedz

1

Aktualizacja

Uploading files with Retorfit 2 and Multipart

Original, off-topic odpowiedzi

http://www.codejava.net/java-se/networking/upload-files-by-sending-multipart-request-programmatically Oto dobry artykuł z kodem, który wysyła wieloczęściowy. To działało dla mnie.

MultipartUtility multipart = new MultipartUtility(requestURL, charset); 

multipart.addHeaderField("User-Agent", "CodeJava"); 
multipart.addHeaderField("Test-Header", "Header-Value"); 

multipart.addFormField("description", "Cool Pictures"); 
multipart.addFormField("keywords", "Java,upload,Spring"); 

multipart.addFilePart("fileUpload", uploadFile1); 
multipart.addFilePart("fileUpload", uploadFile2); 

List<String> response = multipart.finish(); 

System.out.println("SERVER REPLIED:"); 

for (String line : response) { 
    System.out.println(line); 
} 
+0

Ale nie używa Retrofit 2.0.0-beta 1. – EpicPandaForce

+0

Dziękuję! Ale potrzebuję tylko Retrfil, a wersja jest 2.0.0 -beta1! – kadik

0

Przede wszystkim, czy próbujesz wysłać MediaType „application/json” jako @Multpart, jeśli chcesz wysłać multpartfile tak czy potrzebuje zmian latków w kodzie.

coś takiego:

@Multipart 
    @POST("/profile/update") 
    Call<RegistrationResponse> updateProfile2(
    @Header(value = "X-AUTH-TOKEN") String toke, 
    @Part("myfile\"; filename=\"image.png\" ") RequestBody file); 

i zmienić wywołanie metody to:

RequestBody file = RequestBody.create(MediaType.parse("multipart/form-data"), myFile); 
     return apiService.updateProfile2(token, file); 
Powiązane problemy