我正在尝试使用改造库。 我很开心:
Start Stop SameValue Value_dfA Value_dfB
0 0 50 1 0.0 0.0
1 51 100 0 0.0 1.0
2 101 200 1 1.0 1.0
3 201 300 0 0.0 1.0
4 301 1000 1 0.0 0.0
以及我的改装对象的定义:
@FormUrlEncoded
@POST("login")
fun login(@Field("username") username: String,
@Field("password") password: String,
@Field("_auth_code") authCode: Int = 0
): Observable<String>
但当我执行我的请求时,我的“_auth_code”字段作为字符串收到服务器。
我不会被转换为String?
感谢的
答案 0 :(得分:2)
这是因为@FormUrlEncoded和@Field。如果我这样保存用户:
@POST("users")
@FormUrlEncoded
Call<User> registerFormUser(@Field("name") String name,
@Field("verified_acc") boolean verified_acc,
@Field("points") int points);
那么JSON结果将是:
{
"name": "Robert",
"verified_acc": "false",
"points": "0",
"id": 8
}
所以我的布尔值和整数值现在是字符串。
但是,如果您这样保存它:
@POST("users")
Call<User> registerUser(@Body User user);
那么JSON结果将是:
{
"id": 9,
"name": "George",
"points": 0,
"verified_acc": false
}
第二种方法的唯一问题是它会按字母顺序更改顺序。如果您对此没有任何问题,可以将其保存而无需将字段转换为字符串。
答案 1 :(得分:0)
我创建了一个这样的对象:
data class UserLogin(val username: String, val password: String, val code: Int = 0)
并制作
@POST("login")
fun login(@Body user: UserLogin
): Observable<String>
答案 2 :(得分:0)
代替int - long。
实施例: 在这里输入代码@Field(“_ auth_code”)authCode:long = 0