如何设置动态文件名?

sim*_*imo 3 retrofit retrofit2

使用retrofit 2,如何为上传的文件设置动态名称?

目前,它是这样的:

@Part("avatar\"; filename=\"image\" ") RequestBody image,
Run Code Online (Sandbox Code Playgroud)

但是,上传的文件名将没有image扩展名。对于这个案例有什么建议吗?

Jak*_*ton 5

将您的端点定义为MultipartBody.Part以下类型:

interface Example {
  @Multipart //
  @POST("/foo/bar/") //
  Call<ResponseBody> method(@Part MultipartBody.Part part);
}
Run Code Online (Sandbox Code Playgroud)

然后使用它的工厂来创建类型:

RequestBody body = // image body...
Call<ResponseBody> call = example.method(
    MultipartBody.Part.createFormData("image", "whatever.png", body));
Run Code Online (Sandbox Code Playgroud)