Aar*_*ron 5 java api android retrofit retrofit2
对 http 请求和 java 以及改造的新手,所以这可能是一个基本问题,但是......
我已经成功地设置了对 Web 服务的成功 http 调用,但在一方面有点困惑,主要是基于我从教程/示例中看到的内容。
我看过很多这样的例子:
@POST("/api")
Call<Foo> savePost(@Body Foo foo);
Run Code Online (Sandbox Code Playgroud)
我的理解是参数 'foo' 将被选定的转换器转换为 json 并作为 http 请求的正文传递。我不明白的是为什么 Call 的响应体类型也是 Foo?这里是否假设响应也将反序列化为 Foo 对象?有一个与您发送的正文相匹配的响应是常见的做法吗?我开始将它用于诸如 GET 之类的事情,但并没有真正理解为什么您会期望 POST 得到这样的响应。
首先解释一下Retrofit中什么是调用
它是一个Retrofit接口,可以通过execute同步调用,也可以通过enqueue异步调用。无论哪种情况,都可以随时使用 cancel 取消。
无效入队(回调回调);
Asynchronously send the request and notify
Run Code Online (Sandbox Code Playgroud)
响应execute()抛出IOException;
Synchronously send the request and return its response.
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,您从 savePost 获得的 Response 也是 Foo。它将反序列化为 Foo 对象。
这取决于用例,您是否必须获取 Foo 对象,如果您不想,可以使用ResponseBody而不是 Foo
| 归档时间: |
|
| 查看次数: |
1903 次 |
| 最近记录: |