如何使用两个'?'在改造中

时间:2017-08-10 04:28:29

标签: android url retrofit2

我正在尝试在我的Android应用中使用retrofit 2.3。

我有以下网址格式:

  

www.test.com/api?url=a?response=json。

如何将此网址投放到QueryParam?对于第一部分,www.test.com / api将是我的基本网址,然后是@Query("url")值,但是如何在第二个responsetype=json之后处理'?'

1 个答案:

答案 0 :(得分:0)

应该可以将其添加为查询参数

e.g:

Call<TestSiteResult> getTestSiteInfo(@Query("url") String yourUrl, @Query("response") String responseType)

如果需要此响应参数,您还可以考虑使用OkHttpClient进行HTTP连接(您只需使用Retrofit.Builder的客户端(OkHttpClient)方法添加它),该方法负责拦截URL并附加某个URL您的URL的参数(例如,我用它来拦截api密钥)。

LoggingInterceptor可能如下所示:

public class TestLoggingInterceptor implements Interceptor {

  @Override
  public Response intercept(Chain chain) throws IOException {
    Request original = chain.request();
    HttpUrl originalHttpUrl = original.url();

    HttpUrl url = originalHttpUrl.newBuilder()
        .addQueryParameter("response", "json")
        .build();

    Request.Builder requestBuilder = original.newBuilder();
        .url(url);

    Request request = requestBuilder.build;
    return chain.proceed(request);
  }
}

我希望这可以帮到你。