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:
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);
        }
    }
}
Se scrivete al posto di localhost la URI seguente:
potete vedere il funzionamento dell'applicazione.
Il form della mia pagina index.jsp è questo:
codice:
<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>
ciao