gpt4 book ai didi

android - Retrofit 2.0 Multipart Request,在包含文件的表单数据中发送 bool 类型

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:57:19 25 4
gpt4 key购买 nike

我正在尝试使用 retrofit 2.0 上传文件。除了文件之外,我几乎没有其他参数可以与包含 bool 类型的表单数据一起发送。我的请求声明是 -

@Multipart
@POST("/upload/abc")
Call<UploadResponse> uploadToServer(@Part("img_file\";filename=\"image") RequestBody file,
@Part("access_token") RequestBody sessionKey,
@Part("is_final") Boolean isFinal,
@Part("sequence_id") Integer sequenceId,
@Part("entity_id") RequestBody entityId,
@Part("image_type") RequestBody imageType);

我正在使用 GsonConverterFactory。我尝试了两种方法 -

(1) 而不是 @Part("is_final") Boolean isFinal 我使用了 @Part("is_final") RequestBody isFinal 并使用 RequestBody 发送它.create(MediaType.parse("text/plain"), String.valueOf(true))

(2) 使用 @Part("is_final") Boolean isFinal 并使用 Boolean.true 发送。

在这两种情况下,服务器端收到的“is_final”都是 Unicode 或字符串而不是 bool 值。

实现这一目标的最佳方法是什么

最佳答案

我让它工作了 -

添加 compile 'com.squareup.retrofit2:converter-scalars:2.1.0' 到 gradle 文件。

创建改造实例时,添加

Retrofit retrofit = new Retrofit.Builder()
.baseUrl("url")
.client(builder.build())
.addConverterFactory(ScalarsConverterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.build();

现在您可以安全地随请求发送原始类型。

示例请求

Call<UploadResponse> uploadFile(@Part("img\"; filename=\"image") RequestBody file, 
@Part("session_key") String sessionKey,
@Part("is_final") Boolean isFinal);

调用此方法使用 -

RequestBody fBody = RequestBody.create(null, someFile);
service.uploadFile(fBody, "some_string_session", true);

关于android - Retrofit 2.0 Multipart Request,在包含文件的表单数据中发送 bool 类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44293018/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com