Retrofit 2.0を使用してサーバーに HTTP POST を実行しようとしています。
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();
サーバーは、ファイルが無効であることを示すエラーを返します。
これは、iOS で同じ形式の同じファイルを (他のライブラリを使用して) アップロードしようとしたため、奇妙です。ただし、正常にアップロードされます。
Retrofit 2.0を使用して画像をアップロードする適切な方法は何ですか?
アップロードする前にディスクに保存する必要がありますか?
PS: 画像を含まない他のマルチパート リクエストにレトロフィットを使用しましたが、正常に完了しました。問題は、ボディにバイトを含めようとしているときです。