改造2检查呼叫URL

时间:2016-04-10 16:19:55

标签: android http retrofit retrofit2

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

例如,我们可以使用此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吗?

3 个答案:

答案 0 :(得分:19)

假设您正在使用OkHttp和Retrofit,您可以执行以下操作:

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

根据OkHttp文档应该打印:

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

答案 1 :(得分:1)

我个人通过使用改造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 标记,您将看到所做的请求和回复。

答案 2 :(得分:1)

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