Retrofitを使用してサーバーに画像ファイルを送信する方法


まず、Retrofitの設定を行います。まず、build.gradleファイルにRetrofitの依存関係を追加します。

implementation 'com.squareup.retrofit2:retrofit:2.x.x'

次に、Retrofitのインスタンスを作成します。

Retrofit retrofit = new Retrofit.Builder()
    .baseUrl("https://api.example.com/")  // ベースURLを設定します
    .build();

次に、画像ファイルを送信するためのAPIインターフェースを作成します。以下は、POSTリクエストを送信する例です。

public interface FileUploadService {
    @Multipart
    @POST("upload")  // エンドポイントを指定します
    Call<ResponseBody> uploadFile(
        @Part MultipartBody.Part file  // 画像ファイルをパラメータとして指定します
    );
}

これで、画像ファイルを送信する準備が整いました。実際に画像ファイルを送信するには、次のようなコードを使用します。

File file = new File("path/to/image.jpg");  // 送信する画像ファイルのパスを指定します
// MultipartBody.Partを作成します
RequestBody requestBody = RequestBody.create(MediaType.parse("image/*"), file);
MultipartBody.Part filePart = MultipartBody.Part.createFormData("file", file.getName(), requestBody);
// Retrofitのインスタンスを取得します
FileUploadService service = retrofit.create(FileUploadService.class);
// 画像ファイルを送信します
Call<ResponseBody> call = service.uploadFile(filePart);
call.enqueue(new Callback<ResponseBody>() {
    @Override
    public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
        // 送信成功時の処理
    }
    @Override
    public void onFailure(Call<ResponseBody> call, Throwable t) {
        // 送信失敗時の処理
    }
});

このコード例と手順を使用することで、Androidアプリケーションでの画像ファイルの送信が容易になります。