Я пишу приложение, которое будет автоматически заполнять форму на веб-сайте (на Java)
Для этого пользователь должен войти в систему, и здесь возникает проблема: это часть ответа на запрос входа в систему:
Set-Cookie: PHPSESSID=3fvr31tb3c1iplpi3vqpvloar3; путь=/; домен=.bursatransport.com
Set-Cookie: PHPSESSID=eanaj1d9egd73uiome0jtsed43; путь=/; домен=.bursatransport.com
Насколько я проверял, последний вариант является правильным (я проверял его, изменив файл cookie PHPSESSID в браузере).
Мое приложение сохраняет первый файл cookie. В результате при отправке формы она ведет себя так, как будто пользователь не вошел в систему. Иногда он сохранял последний файл cookie, но не смог успешно отправить форму (так же, как и раньше).
Вот мой код входа:
String query = String
.format("returnTo=/&Login[username]=%s&Login[password]=%s&Login[rememberMe]=0&yt4=",
URLEncoder.encode(name, charset),
URLEncoder.encode(password, charset));
CookieManager manager = new CookieManager();
manager.setCookiePolicy(CookiePolicy.ACCEPT_ALL);
CookieHandler.setDefault(manager);
URLConnection mycon = new URL(url).openConnection();
mycon.setDoOutput(true);
mycon.setRequestProperty("Accept-Language", "ro-RO,ro;q=0.8,en-US;q=0.6,en;q=0.4");
mycon.setRequestProperty("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8");
mycon.setRequestProperty("Accept-Charset", charset);
mycon.setRequestProperty("Content-Type",
"application/x-www-form-urlencoded;charset=" + charset);
OutputStream output = null;
output = mycon.getOutputStream();
output.write(query.getBytes(charset));
mycon.getContent();
Это точно не проблема сервера, поскольку он правильно отвечает на запросы браузера (я слушаю их с помощью скрипача)