2016-09-16 10 views
2

@PartMap 또는 @Part ("avatars_attributes []")와 같은 다른 방법으로 서버에 배열 이미지를 보내려고합니다. 그러나 결과없이. 너 나 좀 도와 줄 수있어? I 일부 콘텐츠 해시 MAP 사용 @PartMap 들어Retrofit 2 서버에 이미지 배열 보내기

:

@Multipart 
@POST(ApiRetrofitUrls.TRANSPORTS_URL) 
Call<TransportEntity> addTransport(@PartMap() Map<String, RequestBody> map); 

하지만 서버

만 빈 배열 [] avatars_attributes 수신

 for(int i = 0; i < images.size(); i++){ 
       Bitmap btm = images.get(i); 
       ByteArrayOutputStream out = new ByteArrayOutputStream(); 
       btm.compress(Bitmap.CompressFormat.JPEG, 50, out); 
       byte[] profilePictureByte = out.toByteArray(); 
       final RequestBody imageBody = RequestBody.create(MediaType.parse("image/*"), profilePictureByte); 
       map.put("avatars_attributes[]\"; filename=\"avatars_attributes" + i + ".png\"",imageBody); 

와; 다른 방법으로

, 난 RequestBody 또는 RequestBody []의 ArrayList를,

를 사용하지만, 그 결과는 일부이다.

감사합니다.

+0

당신이 서버 요청 계약서 "를 avatars_attributes []"이미지의 배열 –

+0

의 POST 요청 및 매개 변수를 공유 할 수 시도 –

답변

0

@POST(ApiRetrofitUrls.TRANSPORTS_URL) 
Call<TransportEntity> addTransport(@Body RequestBody data); 

MultipartBody.Builder builder = new MultipartBody.Builder(); 
    builder.setType(MultipartBody.FORM); 
    builder.addFormDataPart("content", textContent); 

    for(String filePath : imagePathList){ 
     File file = new File(filePath); 
     builder.addFormDataPart("avatars_attributes", file.getName(), 
       RequestBody.create(MediaType.parse("image/*"), file)); 
    } 

    MultipartBody requestBody = builder.build(); 
    Call<SocialCreateFeedResponse> call = mSocialClient.createFeeds(requestBody); 
관련 문제