改造 2 检查调用 URL

Retrofit 2 check call URL

是否有可能将 Call URL 与 Retrofit 2 中的 String 进行比较?

例如我们可以这样 baseUrl:

https://www.google.com

还有这个Call

public interface ExampleService {
    @GET("dummy/{examplePartialUrl}/")
    Call<JsonObject> exampleList(@Path("examplePartialUrl") String examplePartialUrl;
}

此请求:

Call<JsonObject> mCall = dummyService.exampleList("partialDummy")

有没有办法在收到呼叫响应之前获得 https://www.google.com/dummy/partialDummydummy/partialDummy

假设您将 OkHttp 与 Retrofit 一起使用,您可以执行以下操作:

dummyService.exampleList("partialDummy").request().url().toString()

根据 OkHttp 文档应该打印:

https://www.google.com/dummy/partialDummy

我个人找到了另一种方法来完成此任务,即使用改造 2 和 RxJava

首先你需要创建一个OkHttpClient对象

private OkHttpClient provideOkHttpClient()
{
    //this is the part where you will see all the logs of retrofit requests 
    //and responses
    HttpLoggingInterceptor logging = new HttpLoggingInterceptor();
    logging.setLevel(HttpLoggingInterceptor.Level.BODY);

    return new OkHttpClient().newBuilder()
            .connectTimeout(500, TimeUnit.MILLISECONDS)
            .readTimeout(500,TimeUnit.MILLISECONDS)
            .addInterceptor(logging)
            .build();
}

创建此对象后,下一步就是在改造构建器中使用它

public Retrofit provideRetrofit(OkHttpClient client, GsonConverterFactory convertorFactory,RxJava2CallAdapterFactory adapterFactory)
{
    return new Retrofit.Builder()
            .baseUrl(mBaseUrl)
            .addConverterFactory(convertorFactory)
            .addCallAdapterFactory(adapterFactory)
            .client(client)
            .build();
}

您可以分配给 Retrofit 构建器的属性之一是客户端,从第一个函数将客户端设置为客户端。

在 运行 这段代码之后,您可以在 logcat 中搜索 OkHttp 标签,您将看到您所做的请求和响应。

Log.d(TAG, "onResponse: ConfigurationListener::"+call.request().url());