我对android非常陌生,我正在研究用于网络的Retrofit 2,以发送Get Get we we use Query参数?
答案 0 :(得分:0)
改造使用注释来定义的键和值转换成适当的格式。使用@Query(“钥匙”)的字符串值注释将添加有名称密钥和相应的字符串值于该请求的URL的查询参数(当然也可以使用其它类型的比串:)。)
实际上,有些API带有端点,使您可以(可选)传递多个查询参数。您要避免像下面这样的服务方法声明,其中对请求参数使用“无尽”选项:
public interface NewsService() {
@GET("/news")
Call<List<News>> getNews(
@Query("page") int page,
@Query("order") String order,
@Query("author") String author,
@Query("published_at") Date date,
…
);
}
您可以使用每个参数的空值调用.getNews服务方法,以使其成为可选参数。改型将忽略空值,并且不将其映射为查询参数。然而,有一个更好的解决方案,工作有对查询参数的各种选项复杂的API端点。不用担心,翻新为您服务!
可以从下面的给定链路探索更多: -
https://futurestud.io/tutorials/retrofit-2-add-multiple-query-parameter-with-querymap
答案 1 :(得分:0)
假设您有以下api可以调用: https://api.themoviedb.org/3/movie/now_playing/api_key=1
因此,为了动态地传递“ api_key”的值,应使用 @Query(“ api_key”)作为:
@GET("movie/now_playing")
Call<MovieData> getMovieData(@Query("api_key") String apiKey);
答案 2 :(得分:0)
没有必要发送带有GET请求的查询参数。这与如何在您要使用的API上配置端点有关。
在设计API(尤其是GET方法)时,可以通过将某些参数指定为查询参数来使它们保持可选。
@GET(“位置”) 响应getUser(@QueryParam(“ name”)字符串名称);
可以被双方调用
/位置
/ location?name = test
查询参数不仅限于GET请求。它也可以与其他方法一起使用,例如DELETE等。
这是与HTTP方法有关的概念
答案 3 :(得分:0)
因此,对于那些可能想要使用Retrofit查询的人来说,这是一种了解它的简单方法。请检查如下....
当您指定@GET(“ Search?”)时,Retrofit认为您已经提供了一些查询参数,并使用&附加了更多查询参数。 删除?,您将获得所需的结果。
enter String BASE_URL = "https://api.test.com/";
String API_KEY = "SFSDF24242353434";
@GET("Search") //i.e https://api.test.com/Search?
Call<Products> getProducts(
@Query("one") String one,
@Query("two") String two,
@Query("key") String key
)
结果: https://api.test.com/Search?one=Whatever&two=here&key=SFSDF24242353434