http请求以及java和改造的新手,所以这可能是一个基本问题,但是......
我设法成功设置了对网络服务的http调用,但在一方面有点困惑,主要是基于我在教程/示例中看到的内容。
我已经看过很多类似的例子:
@POST("/api")
Call<Foo> savePost(@Body Foo foo);
我的理解是这个论点“foo&#39;将被所选转换器转换为json,并作为http请求的主体传递。我不明白为什么Call的响应体型也是Foo?这里假设响应也会被反序列化为Foo对象吗?通常的做法是获得与您发送的身体相匹配的回复吗?我使用它来获得像GET这样的东西,但是并不真正遵循为什么你会期望像POST那样的响应。
答案 0 :(得分:3)
首先让我解释一下 Retrofit
中的调用内容它是一个Retrofit接口,可以通过执行同步调用,也可以通过enqueue异步调用。在任何一种情况下,都可以随时取消取消。
void enqueue(回调回调);
Asynchronously send the request and notify
Response execute()抛出IOException;
Synchronously send the request and return its response.
在上面的示例中,您将从savePost获取的响应也是Foo。它将反序列化为Foo对象。
它取决于用例,你必须得到Foo对象,如果你不想要你可以使用 ResponseBody 而不是Foo