繁体   English   中英

为什么我们在“获取请求”中添加查询参数?

Why we add Query parameters in Get request?

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我对android非常陌生,我正在研究用于网络的Retrofit 2,以发送Get Get we we use Query参数?

4 个回复

Retrofit使用注释将定义的键和值转换为适当的格式。 使用@Query(“ key”)字符串值注释会将带有名称key的查询参数和相应的字符串值添加到请求url(当然,可以使用string:以外的其他类型)。

实际上,有一些带有端点的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

假设您要调用以下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);

不必与GET请求一起发送查询参数。 这与您要使用的API上如何配置端点有关。

在设计API尤其是GET方法时,可以通过将某些参数指定为查询参数来使其保持可选。

@GET(“ location”)响应getUser(@QueryParam(“ name”)字符串名称);

可以被双方调用

/位置

/位置?名称=测试

查询参数不仅限于GET请求。 它也可以与其他方法一起使用,例如DELETE等。

这是与HTTP方法有关的概念

因此,对于那些可能想要使用Retrofit查询的人来说,这是一种了解它的简单方法。 请检查如下。

  • 如果指定@GET(“ Search?one = 5”),则必须使用&附加任何@Query(“ two”),并生成类似Search?one = 5&two = 7的内容。
  • 如果指定@GET(“ Search”),则必须使用?附加第一个@Query,生成类似于Search?two = 7的内容。
  • 这就是改造的工作方式。
  • 当您指定@GET(“ Search?”)时,Retrofit认为您已经提供了一些查询参数,并使用&附加了更多查询参数。 删除?,您将获得所需的结果。

     enter String BASE_URL = "https://api.test.com/"; String API_KEY = "SFSDF24242353434"; @GET("Search") //ie 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

3 Android okhttp GET 请求中添加查询参数

有没有办法在 Android 中使用okhttp将查询参数( ?param1=val1&amp;param2=val2 )添加到 GET 请求中? 我正在寻找一个 API,而不是在循环中手动添加参数并转义这些值。 ...

7 代理https请求并添加查询参数

我对Apache不是很熟悉。 我想要做的是拥有一个可以在浏览器或移动客户端上使用的代理服务器拦截到特定域的HTTPS流量,然后将查询参数添加到相应的请求并转发它。 使用Apache,我使用mod_rewrite来处理HTTP请求,如下所示: 但不适用于https。 我猜它与加密 ...

8 向axios获取请求添加查询

我试图限制我的axios get请求返回的内容。 我有一个Firebase后端,在我的数据中有一个名为case_name的字段,我添加了一些名为Test的记录,并认为我可以在get请求中运行以下命令,以将结果限制为case_name等于test的那些,但仍返回所有记录 谁能告诉我我 ...

9 如何在Lumen中添加查询参数?

我想知道如何向Lumen中的路由添加查询参数 这是我创建的路线的一个例子 这在我使用时有效 http://api.lumenbased.com/product/10920918 但我想像这样使用它 http://api.lumenbased.com/pr ...

2016-07-31 03:18:22 1 2177   lumen
暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM