Как передать параметры в запросе? - PullRequest
0 голосов
/ 29 января 2020

Я пытаюсь поместить данные из класса NewOrderRequest (pojo) в параметры:

 @Query("params") NewOrderRequest params

, но получаю такой результат:

resultQueryString : params com.example.city.Model. NewOrderRequest@f45c8ad

ожидаемый результат:

resultQueryString: params + 911

Настройка данных:

NewOrderRequest newOrderRequest = new NewOrderRequest();
        newOrderRequest.setPhone("+911");
        NetworkService.getInstance()
                .service()
                .newOrder(newOrderRequest)

Запрос:

@Headers({"Accept:application/json", "Content-Type:application/json;"})
@POST("RemoteCall?method=Taxi.WebAPI.NewOrder")
Call<RegResponse>newOrder(@Header("Cookie") String setCookie,@Query("params") NewOrderRequest params);

Скажите, пожалуйста, как передать телефон к параметру?

Ответы [ 3 ]

0 голосов
/ 29 января 2020

Поскольку это почтовый запрос, и целью является отправка данных в виде объекта json, данные лучше отправлять в теле запроса, а не в параметре запроса. Также любые важные данные должны быть частью тела запроса.

0 голосов
/ 29 января 2020

Вы отправляете Объект в @Query параметре, Только @Body принимает объект в качестве его параметра. То, что вы хотите, это конвертировать ваш объект в JsonObject. Я предполагаю, что вы используете библиотеку Gson.

NewOrderRequest newOrderRequest = new NewOrderRequest();
        newOrderRequest.setPhone("+911");
        NetworkService.getInstance()
                .service()
                .newOrder(new Gson().toJson(newOrderRequest))
0 голосов
/ 29 января 2020

Попробуйте код ниже

@Headers({"Accept:application/json", "Content-Type:application/json;"})
@POST("RemoteCall?method=Taxi.WebAPI.NewOrder")
Call<RegResponse>newOrder(@Header("Cookie") String setCookie,@Query("params") String phone);
...