首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Retrofit2复合请求

Retrofit2复合请求
EN

Stack Overflow用户
提问于 2017-12-27 11:51:36
回答 2查看 345关注 0票数 0

我正在尝试使用Retrofit2创建一个请求。我使用标准库创建了请求:

代码语言:javascript
复制
path = "https://www.iii.com/?id="+id+"&data=";
query = "{\"name\":\""+name+"\",\"quantity\":20}";

最后一个环节是:

代码语言:javascript
复制
link = path+URLEncoder.encode(query, "UTF-8");

我尝试了不同的Retrofit2选项,但是我不知道如何使用路径和使用url编码的查询将我的链接转换到Retrofit2链接。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-27 12:08:38

您可以使用以下代码解析获取查询参数以进行修改:

代码语言:javascript
复制
@GET("https://www.iii.com")
Observable<ResponseBody> getSomething(
        @Query("id") int id,
        @Query("data") String data
);

改造会为你建造的。只需传递您的变量(假设您知道如何调用retrofit请求),那么retrofit将为您提供url编码。您可以参考以下链接:https://square.github.io/retrofit/2.x/retrofit/index.html?retrofit2/http/Query.html

如果没有安装匹配的字符串转换器,则使用Retrofit.stringConverter(Type,Annotation[]) (或Object.toString() )将值转换为字符串,然后使用进行编码。忽略空值。传递列表或数组将为每个非空项生成一个查询参数。

票数 1
EN

Stack Overflow用户

发布于 2017-12-27 12:45:17

您可以添加如下所示的指定

代码语言:javascript
复制
@Headers("charset=UTF-8")
@GET("https://www.iii.com")
Observable<ResponseBody> getSomething(
        @Query("id") int id,
        @Query("data") String data
);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47991679

复制
相关文章

相似问题

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