Kev*_*kla 3 android web-services httprequest retrofit retrofit2
按照API,我要求编辑用户个人资料。我必须发送用户个人资料图片,所以我在API中使用了multipart。
@Multipart
@POST(ApiURLs.EDIT_USER_PROFILE)
Call<EditProfileModel> EditUserProfile (@Part("user_id) String userId ,
@Part("user_name") String userName ,
@Part("language_id") String languageId ,
@Part("state_id") String stateId ,
@Part MultipartBody.Part
profilePicture);
Run Code Online (Sandbox Code Playgroud)
当服务调用请求的参数时,就像
“ user_id”:“” 23“”“ user_name”:“”基瓦尔舒克拉“”“ language_id”:“” 27“”“ state_id”:“ 53”“
如何使用MultiPart删除该双引号?
它必须像-
@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 RequestBody profilePicture);
Run Code Online (Sandbox Code Playgroud)
并且,创建requestBody,
File file = new File(imageURI.getPath());
RequestBody fbody = RequestBody.create(MediaType.parse("image/*"), file); // File requestBody
RequestBody userName = RequestBody.create(MediaType.parse("text/plain"), userNameSTRING); // String requestBody
Run Code Online (Sandbox Code Playgroud)
使用 RequestBody 而不是 String。
@Part("user_id") RequestBody user_id,
Run Code Online (Sandbox Code Playgroud)
来称呼它
String userId= "123456";
RequestBody id =
RequestBody.create(
okhttp3.MultipartBody.FORM, userId);
Run Code Online (Sandbox Code Playgroud)