改造会从基本网址中删除查询参数

时间:2018-11-22 20:22:36

标签: android retrofit retrofit2

我有用于所有请求的查询参数。如下所示将其添加到基本网址中

private val baseUrl = HttpUrl.Builder()
            .scheme("http")
            .host("ws.audioscrobbler.com")
            .addPathSegment("2.0")
            .addPathSegment("")
            .addQueryParameter("format", "json")
            .addQueryParameter("api_key", "val")
            .build()

retrofit = Retrofit.Builder()
                .baseUrl(baseUrl)
                .client(okHttpClient)
                .build()

api服务调用是

 @GET("./")
    fun searchTracks(@Query("otherParam") query: String): Call<Any>

在进行实际调用之前,URL已正确构建。它将删除添加在基本url中的查询参数,并仅保留在服务调用中添加的查询参数。
在调试中显示,直到在delegate.enqueue()中调用ExecutorCallAdapterFactory:“ http://ws.audioscrobbler.com/2.0/?format=json&api_key=val&otherParam=val
显示在日志中(通过拦截器):“ http://ws.audioscrobbler.com/2.0/?otherParam=val

您知道为什么会发生这种情况以及如何保留参数吗?

1 个答案:

答案 0 :(得分:0)

您应将查询参数添加到请求拦截器中的url。

hdfs namenode -format