问题
This is how the body
for the call should look like (image field will be added).
{
"email":"test",
"username":"test",
"password":"test",
"name":"test",
"description":"Something...",
"OAuthCredentialsTest":{
"client_id":23,
"client_secret":"test"
}
}
I am using @PartMap
as the body
in my call:
Call<CreateUserResult> createUserPart(@PartMap Map<String, RequestBody> map);
And then when I enqueue
the call:
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);
But, how can I include the OAuthCredentialsTest
key and values part in my myMap
?
来源:https://stackoverflow.com/questions/44225188/retrofit-multipart-with-body