Dados de formulário multipartes do POST usando Retrofit 2.0, incluindo imagem
Estou tentando fazer um HTTP POST para o servidor usandoRetrofit 2.0
MediaType MEDIA_TYPE_TEXT = MediaType.parse("text/plain");
MediaType MEDIA_TYPE_IMAGE = MediaType.parse("image/*");
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
imageBitmap.compress(Bitmap.CompressFormat.JPEG, 90, byteArrayOutputStream);
profilePictureByte = byteArrayOutputStream.toByteArray();
Call<APIResults> call = ServiceAPI.updateProfile(
RequestBody.create(MEDIA_TYPE_TEXT, emailString),
RequestBody.create(MEDIA_TYPE_IMAGE, profilePictureByte));
call.enqueue();
O servidor retorna um erro dizendo que o arquivo não é válido.
Isso é estranho, porque tentei fazer o upload do mesmo arquivo com o mesmo formato no iOS (usando outra biblioteca), mas ele é carregado com êxito.
Gostaria de saber qual é a maneira correta de fazer upload de uma imagem usandoRetrofit 2.0?
Devo salvá-lo no disco antes de fazer o upload?
Obrigado!
P.S .: Eu usei o retrofit para outra solicitação Multipart que não inclui imagem e eles foram concluídos com êxito. O problema é quando estou tentando incluir um byte no corpo.