Uepselon: Post Mitteilung vom Applet zum cgi-script

Hallo,

ich möchte aus einem Applet heraus, einem cgi-script Daten mit
der post Methode schicken. Was an sich auch gut funktioniert.
Im Script lese ich die Daten dann vom STDIN, hierzu brauche ich
jedoch die Content-Length, diese kann ich normalerweise aus der
Umgebungsvariable lesen, da der aufruf jedoch von Java her kam, muss
ich aber einen eigenen HTTP-HEADER machen.

Kann mir jemand sagen wie dieser genau aussehen muss, oder gibt
es noch eine andere Möglichkeit, die Daten vom STDIN zu lesen ohne
die Länge genau zu kennen?

MfG

Uepselon

  1. Hi,

    Im Script lese ich die Daten dann vom STDIN,

    warum benutzt Du nicht einfach CGI.pm?

    #!/usr/bin/perl -w
    use strict;
    use CGI ':standard';
    print header('text/plain'), param('name');

    Dies liefert Dir den Wert des Übergabeparameters 'name' zurück. Mehr dazu in

    perldoc CGI

    Cheatah

    1. Hi,

      das hab ich jetzt nicht ganz Verstanden, *ich bin kein Perl Profi*

      Sprichst du von einem Perl Modul (CGI.pm)?

      Das Script selbst muss keinen HTTP-HEADER ausgeben, das Applet
      muss diesen bei seiner post Übergabe mitgeben, tut es aber nicht.
      Es liegt lediglich ein String im STDIN für das Script bereit,
      bsp: "test=text" , dieser hätte ja die Länge 9. Wenn ich nun
      read vom STDIN mache mit length=9 kann ich was damit anfangen, nur die länge ist ja variabel und sollte eben im HEADER stehen: Deshalb meine Frage, wie ein HEADER übergeben werden muss.

      Z.B.? Content-Length:Wert_aus_Applet
            etc.
            test=text

      was muss da alles im Header stehen? muss alles in einer Zeile stehen, oder
      durch einen Zeilenumbruch CRLF getrennt sein???

      MfG

      Y

      1. Hallo Uepselon

        Ein paar links zu http:
        ftp://ftp.isi.edu/in-notes/rfc2616.txt
        [http://www.w3.org/Protocols/]

        Serverseitig gibt es ja genug Klassen dafür.
        Warum diese nicht Standartmässig bei Java dabei sind um so auch bei Applets ohne erhebliche Ladezeiten eingesetzt werden zu können ist mir ein Rätsel.

        Tschüs

        Daniel

        1. Hi,

          Content-Length: Länge|Content-Type: text/html
          CRLF
          feld=value
          CRLF
          feld2=value

          Sieht so HEADER und BODY einer post Mitteilung aus?
          Oder wird das mit den CRLF und | , anderst gehandhabt?

          1. Hallo

            Ich hab nochmal ein bischen gesucht:
            http://www.innovation.ch/java/HTTPClient/
            Da gibt es eine HTTP-Implementierung für die clientseite mit SSL Unterstützung usw.
            Insgesammt sind es zwar 300 KB ohne source, aber die meisten Klassen wird man wohl nicht für eine einfache POST-Anfrage benötigen.
            Wenn du das von Hand machen willst, musst du entweder den HTTP-RFC lesen, oder ein CGI-Script schreiben, dass den httpheader ausgibt (um zu sehen, was der browser machen würde).

            cu

            Daniel