繁体   English   中英

如何在请求中传递参数?

[英]How to pass parameters in a request?

我尝试将 NewOrderRequest(pojo) 类中的数据放入参数中:

 @Query("params") NewOrderRequest params

但我得到了这个结果:

结果查询字符串:参数 com.example.city.Model.NewOrderRequest@f45c8ad

预期结果:

结果查询字符串:参数 +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);

请告诉我如何将电话传递给参数?

试试下面的代码

@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参数中发送一个对象,只有@Body接受该对象作为其参数。 您想要的是将您的对象转换为 JsonObject。 我假设您正在使用 Gson 库。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM