PHP $_POST["name"] in Java

Adriano10

Bekanntes Mitglied
wenn durch <form> einen Wert gesendet wird kann man per Java abfangen?
HTML:
<!DOCTYPE html>
<html lang="en">
    <?php include "../php/calc.php" ?>
    <script src="../javascript/calc.js"></script>
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <p> <?= calc(7, 8) ?> </p>
    <p id="p1"><script> write(10, 9) </script> </p>
    <p> Berechnung 1: <?= calc1(40.5, 35.7) ?>  </p>

<form action="get.php" method="post">
 <p>Ihr Name: <input type="text" name="name" /></p>
 <p>Ihr Alter: <input type="text" name="alter" /></p>
 <p><input type="submit" /></p>
</form>
</body>
</html>

ich versuche damit , aber bekomme ich nur ganze Body, ich hätte gern nur den Wert, den hier $_POST["name"] gespeichert wird.
Java:
  String urlLink = "http://localhost:8080/%C3%BCben/html/get.php";

        HttpClient client = HttpClient.newHttpClient();
        HttpRequest request = HttpRequest.newBuilder().uri(URI.create(urlLink)).build();
        client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
                .thenApply(stringHttpResponse -> {
                    int status = stringHttpResponse.statusCode();
                    System.out.println("Status: " + status);
                    String body = stringHttpResponse.body();

                    // Extrahiere den Wert des "name"-Parameters aus dem Body
                    String name = extractParameterValueFromBody(body, "name");

                    System.out.println("Name: " + name);

                    return body;
                })
                .join();
    }

    private static String extractParameterValueFromBody(String body, String parameterName) {
        String[] keyValuePairs = body.split("&");
        System.out.println(body);
        for (String pair : keyValuePairs) {
            String[] keyValue = pair.split("=");
            if (keyValue.length == 2 && keyValue[0].equals(parameterName)) {
                return URLDecoder.decode(keyValue[1], StandardCharsets.UTF_8);
            }
        }
        return null;
    }

Vielen Dank im Voraus für die Hilfe
 
Ich habe gerade ein paar Probleme, Dein Anliegen zu verstehen.

Der Code aus PHP ist ja Server Seite - es wird ein HTML Dokument aufgebaut mit einer form und die kann dann übergeben werden. Und das $_POST["name"] ist ja Server Seite um zu sehen, was der Server da bekommt.

Der Java Code ist aber rein Client Seite. Du sendest also eine Request an den Server und gibst da ggf. Daten mit. Bei dem Request bekommst Du dann eine Antwort zurück. Das ist aber dann streng genommen kein Formular wie bei dem Request. (Wobei natürlich der Server da genau das Gleiche zurück geben kann in der Response).

Was genau bekommst Du denn da zurück? Der Response ist ein url-encoded-form? Bist Du da sicher? Das ist eher unüblich. Statt dessen sind xml oder json üblich.

Es wäre super, wenn Du mehr Informationen geben könntest, was Du da direkt machst. Denn im Augenblick sieht es für mich so aus, dass Du da Request und Response durcheinander wirfst. Wenn Du Details gibst, was Du an Request genau absendest und was Du im Detail bekommst, dann kann man ggf. mehr sagen.
 
Ich habe gerade ein paar Probleme, Dein Anliegen zu verstehen.

Der Code aus PHP ist ja Server Seite - es wird ein HTML Dokument aufgebaut mit einer form und die kann dann übergeben werden. Und das $_POST["name"] ist ja Server Seite um zu sehen, was der Server da bekommt.

Der Java Code ist aber rein Client Seite. Du sendest also eine Request an den Server und gibst da ggf. Daten mit. Bei dem Request bekommst Du dann eine Antwort zurück. Das ist aber dann streng genommen kein Formular wie bei dem Request. (Wobei natürlich der Server da genau das Gleiche zurück geben kann in der Response).

Was genau bekommst Du denn da zurück? Der Response ist ein url-encoded-form? Bist Du da sicher? Das ist eher unüblich. Statt dessen sind xml oder json üblich.

Es wäre super, wenn Du mehr Informationen geben könntest, was Du da direkt machst. Denn im Augenblick sieht es für mich so aus, dass Du da Request und Response durcheinander wirfst. Wenn Du Details gibst, was Du an Request genau absendest und was Du im Detail bekommst, dann kann man ggf. mehr sagen.
Danke für die Rückmeldung, das was mein Gedankenfehler. also was ich vorgehabt hatte, ist unmöglich und dummer Weg, kann man viel einfacher durch Spring Boot machen.

Mit besten Grüßen
Beka
 
Ja genau. Mit Spring Boot hättest Du die Server Seite mit Java. Und da gibt es dann auch genug Beispiele. Wenn Du also ein Formular haben willst und dann die Rückmeldung bearbeiten willst, dann wäre Spring Boot mit Thymeleaf eine Idee für einen einfachen und schnellen Start.
 

Neue Themen


Zurück
Oben