首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么我们在Get请求中添加查询参数?

为什么我们在Get请求中添加查询参数?
EN

Stack Overflow用户
提问于 2019-01-31 06:10:04
回答 4查看 1.8K关注 0票数 0

我对android非常陌生,我正在研究Retrofit 2的联网功能,以发送为什么我们使用查询参数的Get?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-01-31 06:42:53

不需要发送带有GET请求的查询参数。这与在您试图使用的API上如何配置端点有关。

在设计API时,特别是GET方法时,可以通过将某些参数指定为查询参数来保持它们的可选性。

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

双方都可以调用

/location

/location?name=test

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

这是一个与HTTP方法相关的概念

票数 1
EN

Stack Overflow用户

发布于 2019-01-31 06:21:44

更新使用注释将定义的键和值转换为适当的格式。使用@ query (" key ")字符串值注释将向请求url添加一个具有名称键和相应的字符串值的查询参数(当然,您可以使用String :以外的其他类型)。

实际上,有一些带有端点的API允许您传递(可选)多个查询参数。您希望避免像下面这样的服务方法声明,为请求参数提供“无止境”选项:

代码语言:javascript
运行
复制
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端点。别担心,Retrofit给你盖好了!

您可以从以下提供的链接中了解更多内容:

https://futurestud.io/tutorials/retrofit-2-add-multiple-query-parameter-with-querymap

票数 1
EN

Stack Overflow用户

发布于 2019-01-31 06:38:16

假设您需要调用以下api:key=1

因此,要动态传递"api_key“的值,应该使用@Query("api_key")作为:

代码语言:javascript
运行
复制
@GET("movie/now_playing")
Call<MovieData> getMovieData(@Query("api_key") String apiKey);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54454347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档