是否有可能将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/partialDummy
或dummy/partialDummy
吗?
答案 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());