android - 使用对象列表改造 POST
问题描述
我尝试使用 Auth 发送帖子。令牌、id 和对象列表(列表)。
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>
响应成功,但我从 Api“缺少乘客数据”中得到错误。我的 #3 响应参数有问题 - 乘客,读取不正确。我在 Postman 及其作品中尝试了这个
我如何需要发送对象列表以进行正确响应?
改造建造者
val retrofit = Retrofit.Builder()
.baseUrl(BASE_URL)
.addConverterFactory(GsonConverterFactory.create())
.build()
return retrofit.create(JSONPlaceHolderApi::class.java)
}
解决方案
您可以使用@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)
}
推荐阅读
- c++ - 将一个类的数据存储在另一个类中
- genymotion - 打嗝套装无法捕获移动应用程序流量
- r - 使用方程的输出作为同一函数中的输入 - Rstudio
- python-3.x - 如何找到 ipykernel 的 virtualenv 位置
- docker - 通过 Docker 在 Tomcat 上部署 WAR - 404
- javascript - 如何减少反应上下文地狱?
- java - 获取位置并在 editText 上书写
- java - JMeter Http请求永远连接超时
- javascript - 点击时表情符号反应问题
- swift - 如何以编程方式调整亮度并防止在 WatchOS 上关闭屏幕?