原文链接:https://futurestud.io/blog/retrofit-send-objects-in-request-body
本篇介绍了如何定义和利用 Retrofit 使用HTTP请求体发送数据。下面的列表显示了该系列的所有文章:

Retrofit 系列目录

  1. 开始创建android客户端[已翻译]
  2. Android上的基本认证[已翻译]
  3. Android上的令牌认证[已翻译]
  4. Android上的OAuth
  5. 多个 Query 参数使用同一名字[已翻译]
  6. 同步与异步请求[已翻译]
  7. 在请求体里发送对象
  8. 自定义一个响应转换器[已翻译]
  9. 添加自定义请求头
  10. 可选的 Query 参数
  11. 如何集成 XML 转换器
  12. 使用 Log Level 调试请求
  13. 如何上传文件
  14. Series Round-Up
  15. Retrofit 2 — 1.9 升级指南
  16. Retrofit 2 — 如何上传文件
  17. Retrofit 2 — Log 请求与响应
  18. Retrofit 2 — Android 上的 Hawk 认证
  19. Retrofit 2 — 简单错误处理
  20. 如何在 Retrofit 1 里使用 OkHttp 3
  21. Retrofit 2 — 图书更新发布庆典
  22. 提交表单数据 — Urlencoded
  23. 提交表单数据 — Urlencoded 使用FieldMap
  24. Retrofit 2 — 在 OkHttp 拦截器里管理请求头部
  25. Retrofit 2 — 如何给每一个请求添加 Query 参数
  26. Retrofit 2 — 使用QueryMap 添加多个 Query 参数
  27. Retrofit 2 — 如何在请求时使用动态 Url
  28. Retrofit 2 — Url 处理,分辨和解析
  29. Retrofit 2 — POST 和PUT 请求里的常量, 默认值和逻辑值
  30. Retrofit 2 — 如何下载文件
  31. Retrofit 2 — 取消请求
  32. Retrofit 2 — 重用分析请求
  33. Retrofit 2 — 如何在运行时修改 API Base Url
  34. 可选Path参数
  35. 如何刷新 Access Token
  36. Retrofit 2 — 如何提交文本请求体
  37. Retrofit 2 — 使用 Query 参数来分页
  38. Retrofit 2 — 使用 链接头和动态 Url 来分页(比如GitHub)
  39. Retrofit 2 — 使用范围头字段来分页 (比如 Heroku)
  40. Retrofit 2 — 转换器介绍
  41. Retrofit 2 — 添加并自定义 Gson 转换器
  42. Retrofit 2 — 实现自定义转换器
  43. Retrofit 2 — 只在开发环境里启用日志
  44. Retrofit 2 — 如何上传多个文件
  45. Retrofit 2 — Passing Multiple Parts Along a File with @PartMap
  46. Retrofit 2 — 模仿服务端响应基本概念
  47. Retrofit 2 — 模仿服务端响应自定义网络行为
  48. Retrofit 2 — 使用 @HeaderMap 定义动态请求头

将对象做为请求体发送

Retrofit 提供了在请求体里发送对象的能力. 对象可以通过使用 @Body 注解被指定为 HTTP 请求体. Retrofit 的 @Body 注解在版本2里并未改变.

Retrofit 1.9

public interface TaskService {      @POST("/tasks")    void createTask(@Body Task task, Callback cb);}

Retrofit 2

public interface TaskService {      @POST("/tasks")    Call createTask(@Body Task task);}

已定义的RestAdapter的转换器(如GSON)将映射定义的对象为JSON, 该JSON字符串将被作为请求体发送到你的服务器上.

示例

让我们看一个具体的例子.

public class Task {      private long id;    private String text;    public Task(long id, String text) {        this.id = id;        this.text = text;    }}

通过填充 idtext属性实例化一个新的Task对象. 然后,传递对象到service 类时,对象的字段和值将被转换为JSON.

Retrofit 1.9

Task task = new Task(1, "my task title");  taskService.createTask(task, new Callback)() {});  

Retrofit 2

Task task = new Task(1, "my task title");  Call call = taskService.createTask(task);  call.enqueue(new Callback() {}); 

调用CreateTask服务方法会将task的属性转换成JSON表示. task的JSON 看起来像这样:

{    "id": 1,    "text": "my task title"}

祝您使用愉快! 如果遇到任何问题或想要更多细节请 Twitter @futurestud_io.

更多相关文章

  1. Android中Intent的使用示例
  2. 以Android(安卓)Library的方式使用 for
  3. 使用Android(安卓)BindingAdapter与InverseBindingAdapter实现Se
  4. Android发邮件
  5. Android(安卓)学习路线
  6. Android(安卓)TextView使用及性能优化
  7. 箭头函数的基础使用
  8. NPM 和webpack 的基础使用
  9. Python list sort方法的具体使用

随机推荐

  1. android sdk命令行操作笔记
  2. Android的NDK开发(1)————Android(安
  3. Android(安卓)问题记录
  4. android 软解 硬解 渲染
  5. imagebutton 带文字
  6. android:process=":remote"
  7. android 多媒体扫描过程(Android(安卓)Med
  8. Excessive JNI global references - Andr
  9. Android(安卓)Studio第三十九期 - popWin
  10. Android——ViewPager+Fragment+ListView