如何在@Field和@FormUrlEncoded上使用@Body?

时间:2017-05-25 09:53:04

标签: android http-post retrofit2 android-json square

@FormUrlEncoded
@POST("/api/post")
Call<Response> createPost(
        @Header("auth") String auth,
        @Field("id") String id,
        @Field("title") String title,
        @Body ContentData content);

通过使用此代码,我收到错误消息“@Body参数不能与表单或多部分编码一起使用。”。我现在应该怎么做 ?我试图将Object as String也发送失败。

1 个答案:

答案 0 :(得分:0)

如果您要发送表单数据,请使用Field作为参数:

@Header("auth: YOUR_AUTH")
@FormUrlEncoded
@POST("/api/post")
Call<Response> createPost(
    @Field("id") String id,
    @Field("title") String title
);

否则如果你使用的不是像application / json这样的表格数据发送你的身体@Body:

@Header("auth: YOUR_AUTH")
@POST("/api/post")
Call<Response> createPost(@Body ContentData content);

这完全取决于您的要求。