How to get http response headers using the Glide and OkHttp

Viewed 3430

I need to get the http response headers from image. How to create a interceptor for each request from Glide? Is it necessary create a Glide Module?

2 Answers

You can get response header by intercepting your glide response

@GlideModule
class MyGlideModule : AppGlideModule() {
      override fun applyOptions(context: Context?, builder: GlideBuilder?) {
      }

      override fun registerComponents(context: Context?, glide: Glide?, 
        registry: Registry?) {
            super.registerComponents(context, glide, registry)
            val httpClient = OkHttpClient.Builder()
            httpClient.addInterceptor({ chain: Interceptor.Chain? ->
                val response = chain?.proceed(chain.request())
                // for get specific header  
                val header = response?.header("specific header")
                // for get all headers 
                val headers = response?.headers()

                response
            })

            registry?.replace(GlideUrl::class.java, InputStream::class.java, 
            OkHttpUrlLoader.Factory(httpClient.build()))
        }
    }

If you unable to find any classes like OkHttpUrlLoader then find it Here

Related