How can I debug my retrofit API call?

后端 未结 3 1499
南笙
南笙 2021-02-06 23:01

I\'m using retrofit to get some data from the Flickr api. The method I\'m making the call in looks like this:

public static List getImageIds(int si         


        
3条回答
  •  悲哀的现实
    2021-02-06 23:53

    Use HttpLoggingInterceptor along with Retrofit.

    If this helps, add this inside your build.gradle -

    //Retrofit and OkHttp for Networking
    implementation 'com.squareup.retrofit2:retrofit:2.7.1'
    implementation 'com.squareup.retrofit2:converter-gson:2.7.1'
    //Logging Network Calls
    implementation 'com.squareup.okhttp3:logging-interceptor:4.2.1'
    

    Inside your APIClient class add this -

    public class ApiClient {
        private static Retrofit retrofit = null;
    
        public static Retrofit getClient(){
    
            HttpLoggingInterceptor interceptor = new HttpLoggingInterceptor();
            interceptor.setLevel(HttpLoggingInterceptor.Level.BODY);
            OkHttpClient client = new OkHttpClient.Builder()
                    .addInterceptor(interceptor)
                    .build();
    
    
            if(retrofit==null){
                retrofit = new Retrofit.Builder()
                        .baseUrl(BuildConfig.baseUrl)
                        .addConverterFactory(GsonConverterFactory.create())
                        .client(client)
                        .build();
            }
            return retrofit;
        }
    }
    

    Kotlin Code

    val interceptor : HttpLoggingInterceptor = HttpLoggingInterceptor().apply {
                this.level = HttpLoggingInterceptor.Level.BODY
            }
    
    val client : OkHttpClient = OkHttpClient.Builder().apply {
                this.addInterceptor(interceptor)
            }.build()
    
    
    fun getService(): Service {
            return Retrofit.Builder()
                    .baseUrl(BASE_URL)
                    .addConverterFactory(GsonConverterFactory.create())
                    .addCallAdapterFactory(LiveDataCallAdapterFactory())
                    .client(client)
                    .build()
                    .create(Service::class.java)
        }
    

    And you will be able to log the Retrofit Network calls that you make.

    Let me know if you need more information.

提交回复
热议问题