модифицировать 2 динамически установить имя параметра детали - PullRequest
0 голосов
/ 19 октября 2018

Могу ли я динамически установить имя параметра как часть запроса, состоящего из нескольких частей, используя модификацию 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, restпараметров и URL запроса остаются неизменными.

во время вызова могу ли я достичь такого типа функции в Activity или Fragment?

1 Ответ

0 голосов
/ 20 октября 2018

Вы можете попробовать аннотацию 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 */});

Это должно помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...