如何在请求中传递参数?
How to pass parameters in a request?
我尝试将来自 NewOrderRequest(pojo) class 的数据放入参数中:
@Query("params") NewOrderRequest params
但我得到了这个结果:
resultQueryString: 参数 com.example.city.Model.NewOrderRequest@f45c8ad
期望结果:
resultQueryString: 参数 +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);
请告诉我如何将phone传递给参数?
试试下面的代码
@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);
因为它是一个 post 请求,目的是将数据作为 json 对象发送,所以数据最好在请求正文中发送,而不是在查询参数中发送。此外,任何敏感细节都应该是请求正文的一部分。
您正在 @Query
参数中发送一个 Object,只有 @Body
接受该对象作为其参数。您想要的是将您的对象转换为 JsonObject。我假设您正在使用 Gson 库。
NewOrderRequest newOrderRequest = new NewOrderRequest();
newOrderRequest.setPhone("+911");
NetworkService.getInstance()
.service()
.newOrder(new Gson().toJson(newOrderRequest))
我尝试将来自 NewOrderRequest(pojo) class 的数据放入参数中:
@Query("params") NewOrderRequest params
但我得到了这个结果:
resultQueryString: 参数 com.example.city.Model.NewOrderRequest@f45c8ad
期望结果:
resultQueryString: 参数 +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);
请告诉我如何将phone传递给参数?
试试下面的代码
@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);
因为它是一个 post 请求,目的是将数据作为 json 对象发送,所以数据最好在请求正文中发送,而不是在查询参数中发送。此外,任何敏感细节都应该是请求正文的一部分。
您正在 @Query
参数中发送一个 Object,只有 @Body
接受该对象作为其参数。您想要的是将您的对象转换为 JsonObject。我假设您正在使用 Gson 库。
NewOrderRequest newOrderRequest = new NewOrderRequest();
newOrderRequest.setPhone("+911");
NetworkService.getInstance()
.service()
.newOrder(new Gson().toJson(newOrderRequest))