@part in multipart使用双引号发送字符串参数

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删除该双引号?

Par*_* P. 5

它必须像-

@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)


Bek*_*Bek 0

使用 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)