从 OkHttp v3 开始 OkHttpClient 是不可变的,拦截器的列表也是如此。
从 Retrofit 2.0-beta3 开始,它依赖于 OkHttp v3。
在我的应用程序中,我需要解析具有“a=1&b=2&c=3”格式的 Google Analytics Campain 引用者密钥,并将其附加到注册请求 URL。
使用以前版本的改造很容易通过添加
retrofit.client().interceptors().add(0, chain -> {
final Request httpRequest = chain.request();
return chain.proceed(httpRequest.newBuilder().url(httpRequest.httpUrl().toString() + "&" + request.getUtmParams()).build());
});
在执行调用和
retrofit.client().interceptors().remove(0);
通话后进行。
无法弄清楚如何使用新版本实现相同的行为。请帮忙。
UPD 1.目标是控制单个请求的请求URL。将字符串附加到末尾只是一个示例。使用@QueryMap 是一个选项,但它需要解析我尽量避免的参数字符串。