Я пытаюсь войти и получить информацию о статусе с помощью HTTPS-URL с помощью Java-программирования. Я могу войти в /login.cgi, указав имя пользователя и пароль с запросом POST на этот скрипт.HTTPS-аутентификация и файлы cookie через Java
Затем сценарий проверяет учетные данные и создает конкретный файл cookie (с информацией о сеансе, именем пользователя и т. Д.), А затем сразу же вызывает заголовок ответа местоположения на /home.cgi. Который, я предполагаю, сценарий /home.cgi проверяет информацию cookie перед продолжением загрузки. В противном случае он просто вернется на страницу /login.cgi.
Все это прекрасно работает в браузере из-за того, что браузеры cookie браузера правильно обрабатываются. Однако в Java это очень сложно, потому что я не могу получить соответствующий файл cookie для отправки в качестве запроса на последующие страницы. Я не могу получить правильный файл cookie, потому что я не могу вернуть ответ HTTP (который содержит правильное значение «Set-cookie») между /login.cgi, создающим конкретный файл cookie, и он вызывает Location /home.cgi.
Есть ли что-то, что мне не хватает, или есть лучший способ, с помощью которого Java может обрабатывать файлы cookie, похожие на браузер? (Там печенье магазин и т.д.?)
Спасибо за помощь,
Стив
Итак, этот оператор автоматически включит файлы cookie в Java-программе, аналогичные версии браузера? –
Да, вы можете просто вызвать его в начале вашего основного метода, а позже все HTTP-запросы через java.net.URL будут использовать хранилище файлов cookie, аналогичное тому, как браузеры обрабатывают файлы cookie. – jarnbjo
Да, это сработало. Тем не менее, мне пришлось корректировать политику cookie на нем, чтобы принять все файлы cookie. CookieManager customCookieManager = new CookieManager(); customCookieManager.setCookiePolicy (CookiePolicy.ACCEPT_ALL); CookieHandler.setDefault (customCookieManager); Спасибо за помощь. –