有人可以向我展示代码片段,其中 Retrofit 实际上正在处理来自 API 服务接口的函数注释(我将其作为参数传递给 Retrofit.create 方法)并据此更改其行为吗?我的意思是:@GET、@POST 等
我创建了具有下一个功能的接口 Giphy Api Service:
@GET("gifs/search")
fun getSearchedGifs(
@Query("q") searchTerm: String,
@Query("limit") limit: Int = 50,
@Query("offset") offset: Int = 0,
@Query("rating") rating: String = "g",
@Query("lang") lang: String = "en",
@Query("bundle") bundle: String = "messaging_non_clips",
@Query("api_key") apiKey: String = "my api key"
): Call<DataResult>
这个函数有 @GET("gifs/search") 代表 HTTP GET 请求。然后我在接下来的代码中使用这个接口创建改造对象的实例:
val retroService = retrofit.create(GiphyApiService::class.java)
我检查了retrofit.create()方法和所有文件,但没有找到我的问题的答案
动态代理来实现接口而不是代码生成。
它通过反射解析您的方法,生成方法的 SeriveMethod
并将它们缓存到
serviceMethodCache
中。当您调用接口的方法时,将调用创建的
ServiceMethod
。