如何将@Body与@Field和@FormUrlEncoded一起使用


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

使用此代码时,我收到错误消息,指出"@Body参数不能与表单或多部分编码一起使用。我现在该怎么办?我尝试将对象作为字符串发送,但同样失败了。

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

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

否则,如果您使用的是表单数据以外的其他数据,例如应用程序/json,请按@Body发送您的身体:

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

这一切都取决于您的要求。

最新更新