【发布时间】:2020-02-22 05:04:23
【问题描述】:
关于 Retrofit2 的问题:
在你构建一个 Retrofit 实例之后,你调用一个接口(客户端)方法来“发送请求”
例如,如果您有这样的界面:
@POST("webhook.php")
Call<String> queueCustomer(@Body String queue);
以及您使用 create 方法创建的“客户端”的 Retrofit 实例,然后您可以这样调用它:
client.queueCustomer(someString)
我假设这实际上是在发出网络请求。但是,您获取由此返回的 Call 对象并调用如下内容:
callObject.enqueue(........)
您在调用 enqueue 时是否在发出后续网络请求?这是两个网络请求还是第一部分:client.queueCustomer(someString) 只是构造将通过callObject.enqueue(........) 发送的对象?
提前致谢
【问题讨论】:
-
你可以在这里找到完整的源代码github.com/square/retrofit
-
client.queueCustomer(someString) 为您提供 Call
对象。然后您可以使用 Call.enqueue() 或 Call.execute() 方法来发出请求。虽然 enqueue 方法是异步的,但执行是同步的。 -
@toffor 所以我在接口中定义的方法只是构造调用对象而不发出任何网络请求吧?