伙计们,我有一个api可以接受以下形式的输入
[{"username":"usr","password":"123456","userflag":"1"}]
我写的是
@FormUrlEncoded
@POST("login")
fun login( @Field("login") List<LoginModel>): Call<Any>
而LoginModel是
data class LoginModel(
@SerializedName("username") var username:String,
@SerializedName("password") var password:String,
@SerializedName("userflag") var userflag:String
)
当我通过将参数作为列表传递来调用api时 服务器无法接收参数,因此会显示500错误。
但是当我使用JsonArray代替List <>作为
json.addProperty("username", loginModel.username)
json.addProperty("userflag", loginModel.userflag)
json.addProperty("password", loginModel.password)
var jarray = JsonArray()
jarray.add(json)
var call: Call<Any> = GetDataService.create().login(jarray.toString())
以及
@FormUrlEncoded
@POST("login")
fun login( @Field("login") data:String): Call<Any>
为什么同样的人拒绝使用List作为参数。?
答案 0 :(得分:0)
尝试使用它并发送 LoginModel 的数组:
@FormUrlEncoded
@POST("login")
fun login( @Field("login") LoginModel[]): Call<Any>
答案 1 :(得分:0)
由于我找不到合适的解决方案。我继续通过使用Gson将模型转换为字符串来使用它。
@FormUrlEncoded
@POST("login")
fun login( @Field("login") data:String): Call<Any>