Отправлять куки с помощью urlconnection
Я пытаюсь войти в Steam с помощью куки. Пробовал 2 способа, первый это:
URL url = new URL("https://steamcommunity.com/");
CookieManager cookieManager = new CookieManager();
CookieHandler.setDefault(cookieManager);
CookieStore cookieStore = cookieManager.getCookieStore();
HttpCookie steamAuthCookie = new HttpCookie("steamMachineAuth*****************", "SteamMachineAuthValue");
steamAuthCookie.setDomain(".steamcommunity.com");
steamAuthCookie.setPath("/");
HttpCookie steamLogin = new HttpCookie("steamLogin", "SteamLoginCookieValue");
steamLogin.setDomain(".steamcommunity.com");
steamLogin.setPath("/");
cookieStore.add(new URI("https://steamcommunity.com/"), steamAuthCookie);
cookieStore.add(new URI("https://steamcommunity.com/"), steamLogin);
URLConnection urlConnection = url.openConnection();
urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.2");
urlConnection.connect();
urlConnection.getContent();
Не работает, Steam все еще предлагает мне войти, я думал, что URLConnection не поддерживает CookieManager, поэтому я нашел и попробовал второй способ:
URL url = new URL("https://steamcommunity.com/");
URLConnection urlConnection = url.openConnection();
urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.4; en-US; rv:1.9.2.2) Gecko/20100316 Firefox/3.6.8");
String cookie = "steamMachineAuth*****************=****************************************;steamLogin=**************************************************************";
urlConnection.setRequestProperty("Cookie",cookie);
urlConnection.connect();
urlConnection.getContent();
И все же steam предлагает мне войти. Застрял в этом, даже не знаю, как проверить - отправлены куки или нет. Как правильно отправлять куки?
1 ответ
Установите сетевой анализатор, например Wireshark, войдите в систему вручную, чтобы войти в ваш браузер и проанализировать отправленные данные. Сравните это с данными, отправленными вашей Java-программой, байт за байтом.