【问题标题】:Is it possible to Make a Request Parameter optional in retrofit2?是否可以在改造 2 中将请求参数设为可选?
【发布时间】:2020-12-17 21:41:37
【问题描述】:

我正在使用 Retrofit2 发出 Multipart 请求,我在其中上传了一张图片和一些文本数据。文件部分在这里是可选的,这意味着用户可以选择也可以不选择图像。有没有办法在 Retrofit 中使任何参数可选?

我试过这样,如果代码下面的文件强制工作,

RequestBody requestBody = RequestBody.create(MediaType.parse("*/*"), file);
                fileToUpload = MultipartBody.Part.createFormData("image", file.getName(), requestBody);

@Multipart
    @POST("url")
    Call<Response> create(
            @Part("name") RequestBody name,
            @Part("mail") RequestBody mail,
            @Part MultipartBody.Part image
    );

【问题讨论】:

  • 您可以使用不同签名的两种方法(一种带有图像参数,另一种没有),如果用户上传图像,您调用第一种方法,否则调用第二种方法
  • 你是什么意思?我不明白你

标签: android retrofit2


【解决方案1】:

@Rgv 只是在请求 API 时为 Multipart.part 图像值传递 null 值。完成 。我就是这样使用的。希望这对某人有所帮助。看看下面的代码,我为文件图像传递了空值。并在有个人资料图像文件时传递图像文件。

request = RetrofitClient.getInstance().getMyApi().updateProfileAPI(
                    UtilsClass.convertStringToRequestbody(name),
                    UtilsClass.convertStringToRequestbody(email),null);

【讨论】:

    猜你喜欢
    • 2016-11-16
    • 2019-08-03
    • 1970-01-01
    • 1970-01-01
    • 2018-09-10
    • 2017-12-12
    • 2022-01-08
    • 2010-09-16
    • 1970-01-01
    相关资源
    最近更新 更多