全部,
我第一次开始使用 RetroFit
,它非常棒。也就是说,我在格式化 POST 请求时遇到了障碍。
我使用的 API 指定要创建用户,我需要像这样发送用户对象:
{
"user": {
"first_name": "John",
"last_name": "Doe",
"email": "john@doe.com",
"password": "jigglypuff123",
"password_confirmation": "jigglypuff123"
}
}
我知道我可以用这种形式发送一个 JsonObject
,但我更想利用 RetroFit
。
如果我传入一个 User
对象,它不会被包含在 user
中。只是
{
"first_name": "John",
"last_name": "Doe",
"email": "john@doe.com",
"password": "jigglypuff123",
"password_confirmation": "jigglypuff123"
}
已发送。
我尝试使用 @Field
注释,结果是这样的:
@POST("/users")
void createUser(@Field("user[first_name]") String first, @Field("user[last_name]") String last, @Field("user[email]") String email, @Field("user[password]") String password, @Field("user[password_confirmation]") String password_confirmation, Callback<User> cb);
我遇到了这个错误:
@Field parameters can only be used with form encoding. (parameter #1)
有人知道如何实现吗?
最佳答案
试试这个:
@FormUrlEncoded
@POST("/users")
void createUser(@Field("user") User user, Callback<User> cb);
让我知道发生了什么:)
关于android - 格式化 Rails API 的 RetroFit post 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28684992/