下面是一个示例代码,演示了如何使用Android Retrofit库将图片文件上传到Spring Boot REST端点。
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-gson:2.9.0'
implementation 'com.squareup.okhttp3:okhttp:4.9.0'
implementation 'com.squareup.okhttp3:logging-interceptor:4.9.0'
import okhttp3.MediaType;
import okhttp3.MultipartBody;
import okhttp3.OkHttpClient;
import okhttp3.RequestBody;
import okhttp3.logging.HttpLoggingInterceptor;
import retrofit2.Call;
import retrofit2.Retrofit;
import retrofit2.converter.gson.GsonConverterFactory;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import java.io.File;
public class RetrofitClient {
private static final String BASE_URL = "http://your-spring-boot-server.com/";
public interface UploadService {
@Multipart
@POST("/upload")
Call uploadImage(@Part MultipartBody.Part image);
}
public static UploadService createUploadService() {
HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
OkHttpClient client = new OkHttpClient.Builder()
.addInterceptor(interceptor)
.build();
Retrofit retrofit = new Retrofit.Builder()
.baseUrl(BASE_URL)
.client(client)
.addConverterFactory(GsonConverterFactory.create())
.build();
return retrofit.create(UploadService.class);
}
public static void uploadImage(File imageFile) {
RequestBody requestBody = RequestBody.create(MediaType.parse("image/*"), imageFile);
MultipartBody.Part imagePart = MultipartBody.Part.createFormData("image", imageFile.getName(), requestBody);
UploadService service = createUploadService();
Call call = service.uploadImage(imagePart);
call.enqueue(new retrofit2.Callback() {
@Override
public void onResponse(Call call, retrofit2.Response response) {
if (response.isSuccessful()) {
// 文件上传成功
} else {
// 文件上传失败
}
}
@Override
public void onFailure(Call call, Throwable t) {
// 请求失败
}
});
}
}
File imageFile = new File("/path/to/image.jpg");
RetrofitClient.uploadImage(imageFile);
请注意,在上面的代码中,您需要将your-spring-boot-server.com
替换为您的Spring Boot服务器的实际URL。另外,您还需要在Spring Boot服务器端创建一个REST端点来接收上传的文件。
希望这个示例能帮助到您。