당신은 그것에게 길을 잘못하고있다 :
@Multipart
@POST(ApiURLs.EDIT_USER_PROFILE)
Call<EditProfileModel> EditUserProfile (@Part("user_id) RequestBody userId ,
@Part("user_name") RequestBody userName ,
@Part("language_id") RequestBody languageId ,
@Part("state_id") RequestBody stateId ,
@Part MultipartBody.Part profilePicture);
String
RequestBody
로 변환합니다.
예를 들어 파일 (이미지, 비디오 등) 및 문자열 매개 변수를 보내고 있습니다. 따라서 모든 매개 변수를 지정하고 특정 매개 변수 유형으로 변환해야합니다. 당신은 두 부분으로 매개 변수를 분할해야
,
1) MultipartBody - 미디어 파일
2) RequestBody - 다른 문자열이나 다른 데이터 형식 매개 변수의
예를 들어,
/*Create API Method*/
@Multipart
@POST("apiurl")
Call<Object> callMethodName(@Part("mobile_no") RequestBody mobile_no, /*String param */
@Part("password") RequestBody password, /*String param */
@Part MultipartBody.Part profile_img /*file param */);
내가
public static final String MULTIPART_TYPE = "multipart/form-data";
지금 아래와 같이 요청 매개 변수를 작성, 당신은 당신의 요구 사항에 따라로 정의 할 수 있습니다,
multipart/form-data
로 구문 분석 유형을 정의해야, /* 추가 문자열에 Params */ RequestBody reqNumber = RequestBody.create (MediaType.parse (Constants.MULTIPART_TYPE), number.toString()); RequestBody reqPass = RequestBody.create (MediaType.parse (Constants.MULTIPART_TYPE), pass.toString());
/* Adding File*/
File file = new File(selectedImagePath);
RequestBody requestFile = RequestBody.create(MediaType.parse(Constants.MULTIPART_TYPE), file);
bodyFile = MultipartBody.Part.createFormData("profile_img", file.getName(), requestFile);
으로 마지막 단계는, 당신은 다음과 같이 API 호출 방법에 요청 매개 변수를 전달해야하는, 그래서 매개 변수를 확인하고 서버로 보낼 수 있습니다.
/* Call API Method */
RestClient.getApiClient().callMethodName(reqNumber, reqPass, bodyFile);