首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Retrofit2静态编码格式数据?

Retrofit2静态编码格式数据?
EN

Stack Overflow用户
提问于 2016-01-29 20:04:33
回答 2查看 610关注 0票数 5

我有一个新的安卓项目,我正在工作,Retrofit2正在为我工作。但是,我需要点击一个url,在我发送的数据之上使用两个字符串中的一个。

现在看起来是这样的:

代码语言:javascript
运行
复制
@FormUrlEncoded
@POST("token")
Call<AccessResponse> requestAccess(@Field("grant_type") String type, @Field("code") String authCode, @Field("client_id") String ApiKey);

授予类型只是两件事中的一件,我想将其抽象为静态urls,如下所示:

代码语言:javascript
运行
复制
@FormUrlEncoded
@POST("token")
@Field("grant_type","type1")
Call<AccessResponse> requestAccess( @Field("code") String authCode, @Field("client_id") String ApiKey);

@FormUrlEncoded
@POST("token")
@Field("grant_type","type2")
Call<AccessResponse> refreshAccess( @Field("code") String authCode, @Field("client_id") String ApiKey);

有办法做到这一点吗?我两天的google-fu没有为我工作,也没有浏览API文档和代码。我只是不想在代码中的不同地方跟踪正确的字符串。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-03 15:03:21

答案是“你现在不行”。

特性请求有一个关于Github的公开发行

还有另一种方法,一个FieldMap对象,它有一个这是如此的帖子中提到的方法示例,但它并不完全是我想要的,而且只对一个字段过度使用。

票数 0
EN

Stack Overflow用户

发布于 2016-02-07 21:12:23

改造后的RequestInterceptor能做这件事吗?它可以向每个请求中注入参数..。因此,您可以编写一个方法,根据您想要做的事情来注入正确的参数.

代码语言:javascript
运行
复制
RequestInterceptor requestInterceptor = new RequestInterceptor() {
       @Override
       public void intercept(RequestFacade request) {
           request.addQueryParam("grant_type", getGrantType());
       }
};
private String getGrantType()
{
     // do your stuff and :   
    return "type1"; // or "type2"  
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35093101

复制
相关文章

相似问题

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