试图将JSONObject放在POST Api中的@Field中,但不起作用

时间:2018-09-29 12:05:36

标签: android post kotlin retrofit2

  @Headers("Accept: application/json")
    @POST("/api/v1/search/filter")
    @FormUrlEncoded fun searchFilter(@Field("leaf_id") leaf_id: Int,
                                     @Field("lang") lang: String,
                                     @Field("token") token: String,
                                     @Field("ud_id") ud_id: String,
                                     @Field("min_price") min_price: Float,
                                     @Field("max") max: Float,
                                     @Field("page") page: Int,
                                     @Field("per_page") per_page: Int,
                                     @Field("properties") properties:JSONObject): Observable<RespProductsInCatg>

@Field("properties")中,我正在尝试发送json对象,但响应失败。 在邮递员中,其返回的正确响应

2 个答案:

答案 0 :(得分:0)

尝试将数据类用于要在属性字段中传递的参数。 然后传递该数据类的对象,并使用@Body而不是@Field作为属性。

答案 1 :(得分:0)

尝试将整个请求创建为一个对象,并在不使用@Field值的情况下添加与@Body参数相同的内容。

类似

data class Request(var leaf_id:Int,
               var lang: String,
               .
               .
               .
               var properties: List<Property>);

 data class Property(var param1:Int, .... );

构造请求对象,然后尝试将其添加为@Body参数。