优化
This commit is contained in:
@@ -232,33 +232,45 @@ interface JsExtensions {
|
|||||||
* js实现重定向拦截,网络访问get
|
* js实现重定向拦截,网络访问get
|
||||||
*/
|
*/
|
||||||
fun get(urlStr: String, headers: Map<String, String>): Connection.Response {
|
fun get(urlStr: String, headers: Map<String, String>): Connection.Response {
|
||||||
return Jsoup.connect(urlStr)
|
val response = Jsoup.connect(urlStr)
|
||||||
.sslSocketFactory(SSLHelper.unsafeSSLSocketFactory)
|
.sslSocketFactory(SSLHelper.unsafeSSLSocketFactory)
|
||||||
.ignoreContentType(true)
|
.ignoreContentType(true)
|
||||||
.followRedirects(false)
|
.followRedirects(false)
|
||||||
.headers(headers)
|
.headers(headers)
|
||||||
.method(Connection.Method.GET)
|
.method(Connection.Method.GET)
|
||||||
.execute()
|
.execute()
|
||||||
|
val cookies = response.cookies()
|
||||||
|
CookieStore.mapToCookie(cookies)?.let {
|
||||||
|
val domain = NetworkUtils.getSubDomain(urlStr)
|
||||||
|
CacheManager.putMemory("${domain}_cookieJar", it)
|
||||||
|
}
|
||||||
|
return response
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* js实现重定向拦截,网络访问head,不返回Response Body更省流量
|
* js实现重定向拦截,网络访问head,不返回Response Body更省流量
|
||||||
*/
|
*/
|
||||||
fun head(urlStr: String, headers: Map<String, String>): Connection.Response {
|
fun head(urlStr: String, headers: Map<String, String>): Connection.Response {
|
||||||
return Jsoup.connect(urlStr)
|
val response = Jsoup.connect(urlStr)
|
||||||
.sslSocketFactory(SSLHelper.unsafeSSLSocketFactory)
|
.sslSocketFactory(SSLHelper.unsafeSSLSocketFactory)
|
||||||
.ignoreContentType(true)
|
.ignoreContentType(true)
|
||||||
.followRedirects(false)
|
.followRedirects(false)
|
||||||
.headers(headers)
|
.headers(headers)
|
||||||
.method(Connection.Method.HEAD)
|
.method(Connection.Method.HEAD)
|
||||||
.execute()
|
.execute()
|
||||||
|
val cookies = response.cookies()
|
||||||
|
CookieStore.mapToCookie(cookies)?.let {
|
||||||
|
val domain = NetworkUtils.getSubDomain(urlStr)
|
||||||
|
CacheManager.putMemory("${domain}_cookieJar", it)
|
||||||
|
}
|
||||||
|
return response
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 网络访问post
|
* 网络访问post
|
||||||
*/
|
*/
|
||||||
fun post(urlStr: String, body: String, headers: Map<String, String>): Connection.Response {
|
fun post(urlStr: String, body: String, headers: Map<String, String>): Connection.Response {
|
||||||
return Jsoup.connect(urlStr)
|
val response = Jsoup.connect(urlStr)
|
||||||
.sslSocketFactory(SSLHelper.unsafeSSLSocketFactory)
|
.sslSocketFactory(SSLHelper.unsafeSSLSocketFactory)
|
||||||
.ignoreContentType(true)
|
.ignoreContentType(true)
|
||||||
.followRedirects(false)
|
.followRedirects(false)
|
||||||
@@ -266,6 +278,12 @@ interface JsExtensions {
|
|||||||
.headers(headers)
|
.headers(headers)
|
||||||
.method(Connection.Method.POST)
|
.method(Connection.Method.POST)
|
||||||
.execute()
|
.execute()
|
||||||
|
val cookies = response.cookies()
|
||||||
|
CookieStore.mapToCookie(cookies)?.let {
|
||||||
|
val domain = NetworkUtils.getSubDomain(urlStr)
|
||||||
|
CacheManager.putMemory("${domain}_cookieJar", it)
|
||||||
|
}
|
||||||
|
return response
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ object CookieStore : CookieManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun mapToCookie(cookieMap: Map<String, String>?): String? {
|
override fun mapToCookie(cookieMap: Map<String, String>?): String? {
|
||||||
if (cookieMap == null || cookieMap.isEmpty()) {
|
if (cookieMap.isNullOrEmpty()) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
val builder = StringBuilder()
|
val builder = StringBuilder()
|
||||||
|
|||||||
@@ -24,13 +24,21 @@ val cookieJar by lazy {
|
|||||||
}
|
}
|
||||||
|
|
||||||
override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) {
|
override fun saveFromResponse(url: HttpUrl, cookies: List<Cookie>) {
|
||||||
cookies.forEach {
|
if (cookies.isEmpty()) return
|
||||||
//CookieStore.replaceCookie(url.toString(), "${it.name}=${it.value}")
|
|
||||||
//临时保存 书源启用cookie选项再添加到数据库
|
//临时保存 书源启用cookie选项再添加到数据库
|
||||||
val domain = NetworkUtils.getSubDomain(url.toString())
|
val cookieBuilder = StringBuilder()
|
||||||
CacheManager.putMemory("${domain}_cookieJar", "${it.name}=${it.value}")
|
cookies.forEach {
|
||||||
|
if (it.value != "") {
|
||||||
|
cookieBuilder.append(it.name)
|
||||||
|
.append("=")
|
||||||
|
.append(it.value)
|
||||||
|
.append(";")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
cookieBuilder.deleteCharAt(cookieBuilder.lastIndexOf(";"))
|
||||||
|
val domain = NetworkUtils.getSubDomain(url.toString())
|
||||||
|
CacheManager.putMemory("${domain}_cookieJar", cookieBuilder.toString())
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user