@Multipart @POST("/xxx") Observable<Result<String>> addInfo(@Part List<MultipartBody.Part> requestBodyMap); List<MultipartBody.Part> parts = new ArrayList<>(); parts.add(toRequestBodyOfText("name", userName)); parts.add(toRequestBodyOfImage("image",foundImage)); ... private MultipartBody.Part toRequestBodyOfText (String keyStr, String value) { MultipartBody.Part body = MultipartBody.Part.createFormData(keyStr, value); return body; } private MultipartBody.Part toRequestBodyOfImage(String keyStr, File pFile){ RequestBody requestBody = RequestBody.create(MediaType.parse("multipart/form-data"), pFile); MultipartBody.Part filedata = MultipartBody.Part.createFormData(keyStr, pFile.getName(), requestBody); return filedata; }