Retrofit Multipart con cuerpo

Así es como debe ser el body de la llamada (se agregará el campo de imagen).

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

Estoy usando @PartMap como el body en mi llamada:

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

Y luego cuando me enqueue la llamada:

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

Pero, ¿cómo puedo incluir la clave OAuthCredentialsTest y la parte de valores en mi myMap ?

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.