在一些post请求中,我不知道什么时候用@Field,什么时候用@Body。 有什么区别:
@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?
能否请您给我一些案例并解释一下,谢谢。
最佳答案
@Body
– 将 Java 对象作为请求正文发送。
@Field
– 以 form-urlencoded 格式发送数据。这需要在方法中附加一个 @FormUrlEncoded
注释。
@Field
参数仅适用于 POST。 @Field
需要一个强制参数。如果 @Field
是可选的,我们可以使用 @Query
代替并传递一个空值。
关于android - 改造:@Field 和 @Body 有什么不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43337068/