import android.content.Context
|
import android.net.Uri
|
import android.util.Log
|
import android.webkit.CookieManager
|
import org.json.JSONObject
|
object CookieHelper {
|
private const val PREF_NAME = "CookieHelper"
|
fun saveSessionProfileUrlCookies(context: Context, sessionProfileId: String, url: String) {
|
try{
|
val cookies = CookieManager.getInstance().getCookie(url)
|
if (cookies != null) {
|
println("这是cookie"+cookies)
|
val sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)
|
val sessionCookiesMap = sharedPreferences.getString(sessionProfileId, "{}")
|
val sessionCookies = JSONObject(sessionCookiesMap!!)
|
sessionCookies.put(url, cookies)
|
sessionCookies.put(getBaseUrl(url), cookies)
|
sharedPreferences.edit().putString(sessionProfileId, sessionCookies.toString()).apply()
|
}
|
} catch (e: java.lang.Exception) {
|
Log.e("CookieHelper", "Failed to get cookies: ", e)
|
}
|
}
|
fun getAllSessionProfileCookies(context: Context, sessionProfileId: String): Map<String, String> {
|
val sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE)
|
val sessionCookiesMap = sharedPreferences.getString(sessionProfileId, "{}")
|
val sessionCookies = JSONObject(sessionCookiesMap!!)
|
println("最终的sessioncookies是"+sessionCookies)
|
println("返回的结果是:"+sessionCookies.keys().asSequence().associateWith { sessionCookies.getString(it) })
|
return sessionCookies.keys().asSequence().associateWith { sessionCookies.getString(it) }
|
}
|
private fun getBaseUrl(url: String): String {
|
val uri = Uri.parse(url)
|
println("最终路径:${uri.scheme}://${uri.host}/")
|
return "${uri.scheme}://${uri.host}/"
|
}
|
}
|