Cuo*_*yen 20 post android retrofit
在一些帖子请求中,我不知道何时使用@Field,何时使用@Body.像什么是区别:
@POST("users/register")
Call<String> register(@Body RequestBody registerRequest);
Run Code Online (Sandbox Code Playgroud)
和:
@POST("users/register")
Call<String> register(@Field String id, @Field String pass);
Run Code Online (Sandbox Code Playgroud)
我可以使用@Body而不是@Field来反转吗?如果没有,为什么?如何知道这个案例使用@Body,其他案例使用@Field?
能否请你给我一些案例并解释一下,谢谢.
Fat*_* km 28
@Body - 将Java对象作为请求体发送.
@Field - 以form-urlencoded方式发送数据.这需要@FormUrlEncoded使用方法附加注释.该@Field参数仅适用于POST.@Field需要一个强制参数.如果@Field是可选的,我们可以@Query改为使用并传递空值.
Neo*_*Neo 25
两者仅用于发布数据,但它们有以下区别 -
@Body注释定义了一个请求体.
interface Foo {
@POST("/jayson")
FooResponse postJson(@Body FooRequest body);
}
Run Code Online (Sandbox Code Playgroud)
这意味着如果您使用@Body,它应该只是参数.当你已经有一个JsonObject并且想要通过api调用发送它时,它会很有用.
另一种方法是,您可以使用@Field发送数据并将Place对象作为JSON字符串发送.
@POST("/post/addphoto/")
public void addImage(@Field("image_url") String url, @Field("caption") String caption, @Field("google_place_id") String placeId, @Field("facebook_place") String place, Callback<UploadCallBack> response);
Run Code Online (Sandbox Code Playgroud)
希望它会有所帮助... :-)
| 归档时间: |
|
| 查看次数: |
12825 次 |
| 最近记录: |