Ho realizzato un software in java che utilizzando jdk.incubator.httpclient riesce a connettersi ad internet e a scaricare delle risorse.
L'obiettivo è connettersi a:
http://localhost:8080/index.jsp
digitare le credenziali di accesso e quindi accedere alla pagina route.jsp privata.
Riesco a collegarmi alla index.jsp ma poi non riesco ad inserire nel form le credenziali di accesso perché il form usa POST e non GET.
Non posso modificare l'applicazione web.
Il codice è questo:
Se scrivete al posto di localhost la URI seguente:codice:package com.company; import jdk.incubator.http.HttpClient; import jdk.incubator.http.HttpRequest; import jdk.incubator.http.HttpResponse; import java.net.URI; public class Main { public static void main(String[] args) { try { HttpClient client = HttpClient. newBuilder(). version(HttpClient.Version.HTTP_2). followRedirects(HttpClient.Redirect.SECURE). build(); HttpRequest req = HttpRequest. newBuilder(). uri(new URI("http://localhost:8080/index.jsp")). GET(). build(); HttpResponse<String> res = client.send(req, HttpResponse.BodyHandler.asString()); System.out.println(res.body()); } catch (Exception e) { throw new RuntimeException(e); } } }
potete vedere il funzionamento dell'applicazione.
Il form della mia pagina index.jsp è questo:
ciaocodice:<form action="/autenticazione.jsp" method="POST"> <label>User ID:</label> <p class=""> <input type="text" name="UserID" autofocus value="" class="UserID form-control"> </p> <label>Password:</label> <p class=""> <input type="password" name="Password" value="" class="form-control"> </p> <p><input type="submit" value="Login" class="btn btn-azzurro"></p> </form>