fix:glide重复添加ua

pull/1852/head
Xwite 3 years ago
parent ffba859da7
commit 872fa8577d
  1. 11
      app/src/main/java/io/legado/app/help/glide/OkHttpStreamFetcher.kt

@ -8,9 +8,11 @@ import com.bumptech.glide.load.data.DataFetcher
import com.bumptech.glide.load.model.GlideUrl
import com.bumptech.glide.util.ContentLengthInputStream
import com.bumptech.glide.util.Preconditions
import io.legado.app.constant.AppConst
import io.legado.app.data.appDb
import io.legado.app.exception.NoStackTraceException
import io.legado.app.help.http.okHttpClient
import io.legado.app.help.http.addHeaders
import io.legado.app.utils.isWifiConnect
import okhttp3.Call
import okhttp3.Request
@ -37,16 +39,19 @@ class OkHttpStreamFetcher(private val url: GlideUrl, private val options: Option
return
}
val requestBuilder: Request.Builder = Request.Builder().url(url.toStringUrl())
val headerMap = HashMap<String, String>()
options.get(OkHttpModelLoader.sourceOriginOption)?.let { sourceUrl ->
val source = appDb.bookSourceDao.getBookSource(sourceUrl)
?: appDb.rssSourceDao.getByKey(sourceUrl)
source?.getHeaderMap(true)?.forEach {
requestBuilder.addHeader(it.key, it.value)
source?.getHeaderMap(true)?.let {
headerMap.putAll(it)
}
}
for ((key, value) in url.headers.entries) {
requestBuilder.addHeader(key, value)
headerMap.put(key, value)
}
requestBuilder.addHeaders(headerMap)
val request: Request = requestBuilder.build()
this.callback = callback
call = okHttpClient.newCall(request)

Loading…
Cancel
Save