Я пытаюсь зайти на веб-сайт с учетными данными своей учетной записи с помощью почтового запроса.Когда я использую curl для выполнения моего почтового запроса, все работает, но когда я пытаюсь реализовать его в Java с HttpURLConnection
, это не так.
Когда я отправляю почтовый запрос с Content-Type: application/x-www-form-urlencoded
какзаголовок и username=USERNAME&password=PASSWORD
в качестве моей полезной нагрузки на https://******.de/login/index.php
ответ содержит Set-Cookie: Session=sodfsgpc0uefhn4sdfucnau2; path=/
.
Если я сейчас беру этот идентификатор сеанса и устанавливаю его в качестве файла cookie для аутентификации, он работает с идентификатором сеансазапрос curl, но не с запросом java.
CURL :
curl -v -H "Content-Type: application/x-www-form-urlencoded" --data "username=USERNAME&password=PASSWORD" https://******.de/login/index.php
Java
String loginData = "username=USERNAME&password=PASSWORD";
URL url = new URL(LOGIN_URL);
HttpsURLConnection connection = (HttpsURLConnection) url.openConnection();
connection.setRequestMethod("POST");
connection.addRequestProperty("Accept", "*/*");
connection.addRequestProperty("Host", "******.de");
connection.addRequestProperty("Content-Length", String.valueOf(loginData.length));
connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
connection.setRequestProperty("User-Agent", "curl/7.55.1");
connection.setDoOutput(true);
OutputStream out = connection.getOutputStream();
out.write(loginData);
out.flush();
out.close();
connection.getInputStream().close();
System.out.println(connection.getHeaderField("Set-Cookie").split(";")[0]);
Как вывидно, что я пытался использовать те же заголовки, что и в curl, но даже тогда это не работает.