0

I try send Post with Auth. token, id and list of object(List).

data class Passenger(
    @SerializedName("seat")
    @Expose
    var seat: Int = 0,

    @SerializedName("seat_id")
    @Expose
    var seatId: Int = 0,

    @SerializedName("transport_id")
    @Expose
    var transportId: Int = 0,

    @SerializedName("firstname")
    @Expose
    var firstname: String = "",

    @SerializedName("lastname")
    @Expose
    var lastname: String = "",

    @SerializedName("email")
    @Expose
    var email: String = "",

    @SerializedName("phone")
    @Expose
    var phone: String = ""): Serializable
    @POST("/api/booking/new_order")
    fun newOrder(@Header("Authorization") token: String,
                 @Query("route_id") routeId: String,
                 @Body passengers: List<Passenger>): Call<NewOrder>

enter image description here Response is successful but i get error from Api "missing passenger data". Trouble in my #3 paramentr of response - passengers, reads uncorrectly. I try this in Postman and its works correctly

How do I need to sent List of object for currectly response?

RetrofitBuilder

        val retrofit = Retrofit.Builder()
            .baseUrl(BASE_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build()
        return retrofit.create(JSONPlaceHolderApi::class.java)
    }
MXF
  • 79
  • 1
  • 9

1 Answers1

0

You can use @FieldMap

@POST("/api/booking/new_order")
@FormUrlEncoded
fun newOrder(@Header("Authorization") token: String,
             @Query("route_id") routeId: String,
             @FieldMap passengers: Map<String,Any>): Call<NewOrder>


fun newOrder() {
    val pessengers = mapOf(
      "seat" to "your_seat_num",
      "seat_id" to "your_seat_id")
    webservice.newOrder("your_token","your_route_id", pessengers)
}
Muhammad Ahmed
  • 1,038
  • 1
  • 7
  • 7