改造:@Field和@Body之间有什么区别 [英] Retrofit: what is different between @Field and @Body

查看:805
本文介绍了改造:@Field和@Body之间有什么区别的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在某些帖子请求中,我不知道何时使用@Field,何时使用@Body. 像之间有什么区别?

In some post request, I don't know when to use @Field, when to use @Body. Like whats the difference between:

@POST("users/register")
    Call<String> register(@Body RequestBody registerRequest);

和:

@POST("users/register")
    Call<String> register(@Field String id, @Field String pass);

我可以使用@Body代替@Field并反转吗?如果没有,为什么?以及如何知道这种情况下使用@Body,其他情况下使用@Field?

Can I use @Body instead of @Field, and reverse ? If not, why ? And how to know this case use @Body, other case use @Field ?

能给我一些案例并解释一下,谢谢.

Can you please give me some case and explain, thank you.

推荐答案

@Body –将Java对象作为请求正文发送.

@Body – Sends Java objects as request body.

@Field –按表单编码发送数据.这需要方法附带的@FormUrlEncoded批注. @Field参数仅适用于POST. @Field需要必填参数.如果@Field是可选的,我们可以改用@Query并传递一个空值.

@Field – send data as form-urlencoded. This requires a @FormUrlEncoded annotation attached with the method. The @Field parameter works only with a POST. @Field requires a mandatory parameter. In cases when @Field is optional, we can use @Query instead and pass a null value.

这篇关于改造:@Field和@Body之间有什么区别的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆