我想用其他方法将数组图像发送到服务器,如@PartMap或@Part(" avatars_attributes []")。但没有结果。也许你可以帮助我?
对于@PartMap,我使用HashMap包含一些内容:
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);
和
@Multipart
@POST(ApiRetrofitUrls.TRANSPORTS_URL)
Call<TransportEntity> addTransport(@PartMap() Map<String, RequestBody> map);
但在服务器上只收到空数组avatars_attributes [];
另一方面,我使用RequestBody的ArrayList或RequestBody [],
但结果是一些。
感谢。
答案 0 :(得分: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);