使用Body改进Multipart

时间:2017-05-28 08:17:04

标签: android retrofit2

这就是调用的body应该是这样的(图像字段将被添加)。

{
"email":"test", "username":"test", "password":"test", "name":"test", "description":"Something...", "OAuthCredentialsTest":{
"client_id":23, "client_secret":"test" } }

我在通话中使用@PartMap作为body

Call<CreateUserResult> createUserPart(@PartMap Map<String, RequestBody> map);

然后当我enqueue来电时:

File file = new File(signUpUser.getImagePath());
    RequestBody fileBody = RequestBody.create(MediaType.parse("image/*"), file);
    RequestBody fullName = RequestBody.create(MediaType.parse("text/plain"), signUpUser.getFullName());
    RequestBody email = RequestBody.create(MediaType.parse("text/plain"), signUpUser.getEmail());
    RequestBody username = RequestBody.create(MediaType.parse("text/plain"), signUpUser.getUsername());
    RequestBody password = RequestBody.create(MediaType.parse("text/plain"), signUpUser.getPassword());
    RequestBody desc = RequestBody.create(MediaType.parse("text/plain"), signUpUser.getDescription());

    Map<String, RequestBody> myMap = new HashMap<>();
    myMap.put("file\"; filename=\"" + file.getName(), fileBody);
    myMap.put("name", fullName);
    myMap.put("email", email);
    myMap.put("username", username);
    myMap.put("password", password);
    myMap.put("description", desc);

但是,如何在OAuthCredentialsTest中添加myMap键和值部分?

0 个答案:

没有答案