2015-08-23 1 views
1

Я пытаюсь войти на сайт через интерфейс программирования (используя Java с Jsoup) и сохранить файл cookie ответа, чтобы я мог передать его на следующие запросы. Но после того, как я вхожу в систему, нет cookie в заголовке ответа :(Успешный логин не дает мне необходимых файлов cookie для доступа к другим страницам (с использованием Jsoup)

Мне удалось войти в систему, однако в заголовке ответа cookie нет. Для цели отладки я вошел в систему из браузера Chrome и проверил заголовок ответа, используя chrome network tab, и после того, как я нажму кнопку «Войти», она успешно введет меня на страницу индекса, но без куки в заголовке ответа. Я знаю, что мне нужны файлы cookie для доступа к другим страницам, для которых требуется логин, потому что в заголовке запроса есть файл cookie называемый «СЕССИЯ ...», и я так и не получил этот файл cookie в заголовке ответа.

Может кто-нибудь помочь мне определить проблему здесь? uts.edu.au

Connection.Reponse res = Jsoup.connect(url) 
      .data("username", id 
        , "password", password 
        , "lt", ltVal 
        , "_eventId", "submit" 
        , "sso_submit", "Sign In" 
        , "rememberMe", "true") 
      .userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.120 Safari/535.2") 
      .cookies(cookies) 
      .method(Method.POST) 
      .followRedirects(true) 
      .execute(); 
+0

вы можете поделиться т он URL-адрес? Трудно догадаться, что происходит без этой информации. – luksch

+0

@luksch Привет. Адрес URL-адреса почтового запроса: https://www.lib.uts.edu.au/auth/login?service=https%3A%2F%2Fwww.lib.uts.edu.au%2Fcas%3Fcas_load_iframe%3D1% 26destination% 3Ddashboard & iframe = true –

ответ

3

Я думаю, что вы ищете неправильный вызов, часто cookie устанавливается в предыдущем вызове на логин (тот, который загружает форму входа).

Если попробовать этот фрагмент кода:

//This url loads the login form 
    Connection.Response response = Jsoup.connect("https://www.lib.uts.edu.au/auth/login?service=https%3A%2F%2Fwww.lib.uts.edu.au%2Fcas%3Fcas_load_iframe%3D1%26destination%3Ddashboard&iframe=true") 
      .timeout(300000) 
      .userAgent("Mozilla/5.0") 
      .method(Connection.Method.GET).execute(); 

    System.out.println("JSESSIONID=" + response.cookies().get("JSESSIONID")); 

Вы увидите что-то вроде:

JSESSIONID=E16B98E972FFF05E9091453C01779E67 

Я надеюсь, что вы будете там куки сессии вы ищете, просто не забудьте использовать этот файл cookie для входа и успешных вызовов.

--- EDIT ---

Существует еще URI, который устанавливает SSESS012 ... печенье, а затем перенаправляет на URL я упомянул в моем оригинальный ответ, пожалуйста, попробуйте следующее:

//Try this other url 
    Connection.Response response = Jsoup.connect("https://www.lib.uts.edu.au/cas?destination=dashboard&cas_load_iframe=1") 
      .timeout(300000) 
      .userAgent("Mozilla/5.0") 
      .method(Connection.Method.GET).execute(); 

    System.out.println("JSESSIONID=" + response.cookies().get("JSESSIONID")); 
    System.out.println("SSESS012...=" + response.cookies().get("SSESS012ea49d58f199a67a953e1500684490")); 

Теперь вы увидите что-то похожее на:

JSESSIONID=5466DCD5601415175514AA88FEC967A0 
SSESS012...=DfL4tW0xOdfu_9Op52b-z3El3CNG2xxOYZdruuVfWH0 

Я надеюсь, что это то, что вам нужно :)

+0

Привет, fonkap, я действительно ценю ваше время, чтобы ответить на мой вопрос. К сожалению, «JSESSIONID» не является файлом cookie, необходимым для доступа к другим страницам, это требуется только для процесса входа в систему, и мне удалось успешно войти в систему с этим файлом cookie. Моя проблема в том, что я не получаю необходимые файлы cookie Мне нужно получить доступ к страницам после успешного входа в систему. Поэтому, даже если я вошел в систему, если я попытаюсь получить доступ к другим страницам (например, панели мониторинга, требующей аутентификации), сервер перенаправит меня на страницу входа, потому что у меня нет необходимых файлов cookie. –

+0

Я попытался загрузить скриншот файлов cookie, необходимых для страниц, но stackoverflow не позволяет загружать изображения, потому что у меня нет достаточной репутации. но в основном на вкладке «Сеть» в разделе «Куки» на странице панели инструментов на вкладке «Запросить файлы cookie» есть два файла cookie, называемые «SESS012ea49 .... 49» и «SSESS012ea49d5 .... 84490». Я считаю, что это файлы cookie, но я не получаю их при успешном входе в систему. –

+0

О, и да, я уже загрузил форму сначала, а затем вошел в систему, как вы сказали выше. Мои извинения ... Должен был упомянуть об этом в моем вопросе. –

Смежные вопросы