Java 如何在请求中传递参数?

Java 如何在请求中传递参数?,java,android,jquery,retrofit,retrofit2,Java,Android,Jquery,Retrofit,Retrofit2,我尝试将NewOrderRequest(pojo)类中的数据放入参数: @Query("params") NewOrderRequest params 但是我得到了这个结果: NewOrderRequest newOrderRequest = new NewOrderRequest(); newOrderRequest.setPhone("+911"); NetworkService.getInstance() .service

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

 @Query("params") NewOrderRequest params
但是我得到了这个结果:

NewOrderRequest newOrderRequest = new NewOrderRequest();
        newOrderRequest.setPhone("+911");
        NetworkService.getInstance()
                .service()
                .newOrder(newOrderRequest)
结果查询字符串:params com.example.city.Model。NewOrderRequest@f45c8ad

预期结果:

NewOrderRequest newOrderRequest = new NewOrderRequest();
        newOrderRequest.setPhone("+911");
        NetworkService.getInstance()
                .service()
                .newOrder(newOrderRequest)
结果查询字符串:参数+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({“接受:应用程序/json”,“内容类型:应用程序/json;”)
@POST(“RemoteCall?方法=Taxi.WebAPI.NewOrder”)
CallnewOrder(@Header(“Cookie”)字符串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);
@Headers({“接受:应用程序/json”,“内容类型:应用程序/json;”)
@POST(“RemoteCall?方法=Taxi.WebAPI.NewOrder”)
CallnewOrder(@Header(“Cookie”)字符串setCookie,@Query(“params”)字符串phone);

由于这是一个post请求,其目的是将数据作为json对象发送,因此数据最好在请求体中发送,而不是在查询参数中发送。此外,任何敏感细节都应该是请求正文的一部分。

您在
@Query
参数中发送一个对象,只有
@body
接受该对象作为其参数。您想要的是将对象转换为JsonObject。我猜你在用Gson图书馆

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

错误:不兼容的类型:NewOrderRequest无法转换为StringAPI。我引用的api将只接受json对象作为参数。@Geferson我很乐意提供帮助。