使用Retrofit以此格式发布字段

时间:2015-05-21 08:40:40

标签: android json api retrofit androidhttpclient

所以我需要以这种格式发送API请求

  

{       “access_key”:“6477848488cchfc47488”,       “人”:{           “first_name”:“约翰”,           “last_name”:“亨利”,           “email”:“john@henry.com”       }   }

我创建了一个对象

$project = $this->project->find($request->project_id);

在我的界面中我有

public class Person {
    public String first_name = "";
    public String last_name = "";
    public String email = "";
}

最后在我的活动中,我有以下代码来调用发送详细信息方法

@FormUrlEncoded
@POST("/send_details")
void sendDetails(@Field("person") Person person, @Field("access_key") String accessKey, Callback<User> cb);

我收到500内部服务器错误。我刚从排球换到改装。非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

尝试使用@Body注释而不是@Field并传递单个Body对象。

class DetailsBody {
    @SerializedName("access_key")
    public String accessKey;
    public Person person;

    public DetailsBody(String accessKey, Person person) {
        this.accessKey = accessKey;
        this.person = person;
    }
}

然后:

@POST("/send_details")
void sendDetails(@Body DetailsBody body, Callback<User> cb);

(不含@FormUrlEncoded