OkHttp CookieJar не может добавить файл cookie для запроса ⇐ JAVA
OkHttp CookieJar не может добавить файл cookie для запроса
Я пытаюсь добавить сохраненный файл cookie аутентификации к дальнейшим запросам с помощью CookieJar. И хотя получение правильного файла cookie аутентификации и сохранение его в jar работает отлично, при проверке response.request().headers() файл cookie нигде не найден.
Мне это показалось особенно странным, поскольку в ходе отладки я обнаружил, что loadForRequest() вызывается для запроса и возвращает правильный файл cookie. При использовании того же файла cookie в Postman для подделки запроса он возвращает желаемый результат (страницу без формы входа).
Может ли кто-нибудь попытаться объяснить, чего мне не хватает?
Класс, в котором используется jar
класс HTMLRoutes { схема вар = "https" var хост = "www.mangaupdates.com" val cookieJar = MULoginCookieJar() вар клиент = OkHttpClient.Builder() .cookieJar(cookieJar) .строить() /*Другой код*/ личное развлечение getHTMLFromUrl(url: HttpUrl): String { вар запрос = Request.Builder() .url(URL) .строить() client.newCall(request).execute().use {ответ -> //Прямо перед возвратом ответа в классе MUCookieJar вызывается метод loadForRequest() если (response.isSuccessful) { //response.request.headers = "" if (response.body() != null) { вернуть ответ.body()!!.string() } еще { throw IOException("Тело ответа пусто") } } еще { throw IOException («Неожиданный код» + ответ) } } } } Мой файл cookie
класс MULoginCookieJar : CookieJar { частный вар secureSessionCookie: Cookie? = ноль переопределить fun saveFromResponse(url: HttpUrl?, cookies: MutableList?) { if (url != null && cookie != null) { if (url.pathSegments().size > 0 && url.pathSegments()[0] == "login.html") { for (cookie в файлах cookie) { if(cookie.name() == "secure_session") { SecureSessionCookie = cookie } } } } } переопределить забаву loadForRequest(url: HttpUrl?): List? { // URL = https://www.mangaupdates.com/series.html?id=14829 if(url != null && url.pathSegments().size > 0 && url.pathSegments()[0] == "login.html") { вернуть пустой список() } val cookie: List = if(secureSessionCookie==null) пустойList() else listOf(secureSessionCookie!!) вернуть файлы cookie // = ["secure_session=601bbc74; expires=Sun, 07 Oct 2018 20:45:24 GMT; domain=www.mangaupdates.com; path=/; secure; httponly"] } } Помощь очень ценится. Я долгое время скрывался, но впервые оказался в таком тупике от проблемы.
Я пытаюсь добавить сохраненный файл cookie аутентификации к дальнейшим запросам с помощью CookieJar. И хотя получение правильного файла cookie аутентификации и сохранение его в jar работает отлично, при проверке response.request().headers() файл cookie нигде не найден.
Мне это показалось особенно странным, поскольку в ходе отладки я обнаружил, что loadForRequest() вызывается для запроса и возвращает правильный файл cookie. При использовании того же файла cookie в Postman для подделки запроса он возвращает желаемый результат (страницу без формы входа).
Может ли кто-нибудь попытаться объяснить, чего мне не хватает?
Класс, в котором используется jar
класс HTMLRoutes { схема вар = "https" var хост = "www.mangaupdates.com" val cookieJar = MULoginCookieJar() вар клиент = OkHttpClient.Builder() .cookieJar(cookieJar) .строить() /*Другой код*/ личное развлечение getHTMLFromUrl(url: HttpUrl): String { вар запрос = Request.Builder() .url(URL) .строить() client.newCall(request).execute().use {ответ -> //Прямо перед возвратом ответа в классе MUCookieJar вызывается метод loadForRequest() если (response.isSuccessful) { //response.request.headers = "" if (response.body() != null) { вернуть ответ.body()!!.string() } еще { throw IOException("Тело ответа пусто") } } еще { throw IOException («Неожиданный код» + ответ) } } } } Мой файл cookie
класс MULoginCookieJar : CookieJar { частный вар secureSessionCookie: Cookie? = ноль переопределить fun saveFromResponse(url: HttpUrl?, cookies: MutableList?) { if (url != null && cookie != null) { if (url.pathSegments().size > 0 && url.pathSegments()[0] == "login.html") { for (cookie в файлах cookie) { if(cookie.name() == "secure_session") { SecureSessionCookie = cookie } } } } } переопределить забаву loadForRequest(url: HttpUrl?): List? { // URL = https://www.mangaupdates.com/series.html?id=14829 if(url != null && url.pathSegments().size > 0 && url.pathSegments()[0] == "login.html") { вернуть пустой список() } val cookie: List = if(secureSessionCookie==null) пустойList() else listOf(secureSessionCookie!!) вернуть файлы cookie // = ["secure_session=601bbc74; expires=Sun, 07 Oct 2018 20:45:24 GMT; domain=www.mangaupdates.com; path=/; secure; httponly"] } } Помощь очень ценится. Я долгое время скрывался, но впервые оказался в таком тупике от проблемы.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение