我可以使用改造2将参数名称动态设置为多部分请求的一部分吗?
@Multipart
@POST(UPDATE_PROFILE)
Call<SignUp> sendUpdateProfileRequest(
@Part("profile_img") RequestBody img_file,
@Part("DYNAMIC_PARAM_NAME") RequestBody first_name,...);
DYNAMIC_PARAM_NAME就像id_seller / id_buyer / id_buyer一样,其余参数和请求URL保持不变。
在打电话时,我可以在Activity或Fragment中实现此类功能吗?
最佳答案
您可以尝试Retrofit的@PartMap
注释而不是@Part
。只需如下更改API接口,
@Multipart
@POST(UPDATE_PROFILE)
Call<SignUp> sendUpdateProfileRequest(
@Part("profile_img") RequestBody img_file,
@PartMap Map<String, RequestBody> params, /* notice the change here */
...
);
像这样使用
... // code
Map<String, RequestBody> params = new HashMap<>();
// prepare RequestBody
RequestBody someDataBody = ....;
// add it Map object
params.put("DYNAMIC_PARAM_NAME", someDataBody);
// pass it to request
FooApiInterface api = ....;
Call<FooResponse> call = api.sendUpdateProfileRequest(imageFile, params);
call.enqueue({/* implement response listener */});
那应该为您解决问题。
关于android - 改造2动态设置零件参数名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52894617/