http 请求和 java 以及改造的新手所以这可能是一个基本问题但是......
我已经成功地设置了对 Web 服务的 http 调用,但一方面我有点困惑,主要是基于我从教程/示例中看到的内容。
我见过很多这样的例子:
@POST("/api")
Call<Foo> savePost(@Body Foo foo);
我的理解是,参数“foo”将由所选转换器转换为 json,并作为 http 请求的主体传递。我不明白的是为什么Call的响应体类型也是Foo?这里是否假设响应也将反序列化为 Foo 对象?做出与您发送的正文相匹配的回应是常见的做法吗?我将其用于 GET 之类的操作,但并不真正明白为什么您会期望 POST 得到这样的响应。
最佳答案
先解释一下什么是Retrofit
中的call是一个Retrofit Interface,可以通过execute同步调用,也可以通过enqueue异步调用。在任何一种情况下,它都可以随时取消。
void enqueue(Callback callback);
Asynchronously send the request and notify
Response execute() throws IOException;
Synchronously send the request and return its response.
在上面的示例中,您将从 savePost 获得的 Response 也是 Foo。它将反序列化为 Foo 对象。
它取决于用例,无论您是否必须获取 Foo 对象,如果您不想,您可以使用 ResponseBody 而不是 Foo
关于java - 使用 Retrofit POST 的 Call<T> 类型的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49744132/