1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

In Applet mit POST Daten versenden..

  • .birgit.
  • 20. Oktober 2010 um 15:01
  • Unerledigt
  • .birgit.
    4
    .birgit.
    Mitglied
    Punkte
    135
    Beiträge
    24
    • 20. Oktober 2010 um 15:01
    • #1

    hi ,
    ich möchte mit einem applet die verbindung vom client zu mehreren servern + 3 verschiedene ports testen. das mach ich mit sockets und funktioniert auch super .
    jetz möcht ich das ergebnis dieser rund 100 verbindungstests aber per POST an eine seite auf dem selben server von wo ich die html-seite mit dem applet geladen habe schicken .
    ich hab dazu schon ein paar dinge im netz gefunden , es scheitert bei mir aber an einem bestimmten befehl (rot markiert). möglicherweise hat da jemand schon erfahrungen ..

    Code
    HttpURLConnection conn = null;
    URL url = new URL("http:\\mein_server\\ConnectionCheck\\output.html");
    conn = (HttpURLConnection) url.openConnection();
    conn.setDoOutput(true);
    conn.setRequestMethod("POST");                              
    OutputStream outstream = [COLOR=Red]conn.getOutputStream();[/COLOR]

    ich fang die exception ab , die errormessage is aber "null" :sudern:

    hab auch schon probiert einfach gleich ein write dazu aufzurufen , aber das is wohl nicht die ursache meines problems..

    Code
    connection.getOutputStream().write(mytext.getBytes());

    vl liegts auch an den einstellungen im IIS dass er mich das nicht lässt .. aber da bin ich dann doch etwas überfordert .. hat vl jemand einen tipp oder eine idee für mich :confused:
    bin auch für vorschläge wie ich die informationen der tests auf dem server irgndwie einfacher bereitstellen könnte offen ..

    thx. liegrü b.

  • sutupud
    13
    sutupud
    Mitglied
    Reaktionen
    59
    Punkte
    1.659
    Beiträge
    320
    • 20. Oktober 2010 um 15:21
    • #2

    benutzt du wirklich backslashes in der url?
    ansonsten ist es bei fehlern immer besser den gesamten stack trace auszugeben. bei einer nullpointerexception steht in der errormessage nämlich nur 'null'

    "All through my life I've had this strange unaccountable feeling that something was going on in the world, something big, even sinister, and no one would tell me what it was."
    "No," said the old man, "that's just perfectly normal paranoia. Everyone in the Universe has that."

    😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😒😓😔😖😘😚😜😞😠😡😢😣😥😨😩😪😫😭😰😱😲😳😵😶😷

  • Paulchen
    1
    Paulchen
    Gast
    • 20. Oktober 2010 um 15:27
    • #3

    Welche Exception kommt denn überhaupt?

  • .birgit.
    4
    .birgit.
    Mitglied
    Punkte
    135
    Beiträge
    24
    • 20. Oktober 2010 um 15:41
    • #4
    Zitat von sutupud

    benutzt du wirklich backslashes in der url?
    ansonsten ist es bei fehlern immer besser den gesamten stack trace auszugeben. bei einer nullpointerexception steht in der errormessage nämlich nur 'null'



    man töte mich ! es is doch wirklich immer a kleinigkeit wenn ma scho zehntausend stunden sucht ... :frowning_face:
    jetz schäm ich mich .. aber danke fürn hinweis . jetz gehts ...

  • .birgit.
    4
    .birgit.
    Mitglied
    Punkte
    135
    Beiträge
    24
    • 22. Oktober 2010 um 13:33
    • #5

    zumindest scheint alles ohne fehler zu laufen . aber wenn ich dann

    Code
    conn.getOutputStream().flush();              
    conn.getOutputStream().close();
    this.getAppletContext().showDocument(url);

    mache, machts mir zwar die angegebene seit auf , aber die post -daten scheinen verloren zu sein .. :frowning_face:

  • sutupud
    13
    sutupud
    Mitglied
    Reaktionen
    59
    Punkte
    1.659
    Beiträge
    320
    • 22. Oktober 2010 um 14:09
    • #6
    Zitat von .birgit.

    zumindest scheint alles ohne fehler zu laufen . aber wenn ich dann

    Code
    conn.getOutputStream().flush();              
    conn.getOutputStream().close();
    this.getAppletContext().showDocument(url);

    mache, machts mir zwar die angegebene seit auf , aber die post -daten scheinen verloren zu sein .. :frowning_face:



    soweit ich mich erinnern kann, wird der request erst abgesendet, wenn du z.b. getResponseMessage(), getResponseCode(), getIntpuStream() etc. zugreifst.
    einfach den output stream zu flushen und zu schließen reicht da nicht.

    "All through my life I've had this strange unaccountable feeling that something was going on in the world, something big, even sinister, and no one would tell me what it was."
    "No," said the old man, "that's just perfectly normal paranoia. Everyone in the Universe has that."

    😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😒😓😔😖😘😚😜😞😠😡😢😣😥😨😩😪😫😭😰😱😲😳😵😶😷

  • .birgit.
    4
    .birgit.
    Mitglied
    Punkte
    135
    Beiträge
    24
    • 22. Oktober 2010 um 14:42
    • #7

    hab ich jetz ausprobiert aber laut meinem firefox plugin das mirn header ausliest, is da genau nixi :frowning_face:

  • sutupud
    13
    sutupud
    Mitglied
    Reaktionen
    59
    Punkte
    1.659
    Beiträge
    320
    • 23. Oktober 2010 um 10:56
    • #8
    Zitat von .birgit.

    hab ich jetz ausprobiert aber laut meinem firefox plugin das mirn header ausliest, is da genau nixi :frowning_face:

    welches plugin benutzt du? tamperdata?
    requests, die von einem java-applet ausgehen werden von den plugins nicht erfasst!
    ich verwende immer für solche fälle ein kleines php script auf meinem localen webserver um zu testen, ob die requests ankommen (loggt einfach zugriffe und post/get daten mit).

    zudem: wenn du das so machst, wird der request von der java app an die seite gesendet, das resultat kommt dan über den input stream zurück.
    this.getAppletContext().showDocument(url); veranlasst den browser nur, die url aufzurufen, das ist aber ein normaler get-request.

    bist du dir sicher, dass du einen korrekten post-request absendest? sollte ungefähr so aussehen:

    Code
    POST /test/blah HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    Host: localhost
    Content-Length: 17
    
    
    test=x&lsk=asldkj


    Eigentlich sollte es reichen, den richtigen content type zu setzen:
    conn.addRequestProperty("Content-Type","application/x-www-form-urlencoded");
    und die daten dann richtig codiert in den output stream zu schreiben, um den rest kümmert sich java selbst.

    "All through my life I've had this strange unaccountable feeling that something was going on in the world, something big, even sinister, and no one would tell me what it was."
    "No," said the old man, "that's just perfectly normal paranoia. Everyone in the Universe has that."

    😁😂😃😄😅😆😇😈😉😊😋😌😍😎😏😐😒😓😔😖😘😚😜😞😠😡😢😣😥😨😩😪😫😭😰😱😲😳😵😶😷

    Einmal editiert, zuletzt von sutupud (23. Oktober 2010 um 10:59)

  • .birgit.
    4
    .birgit.
    Mitglied
    Punkte
    135
    Beiträge
    24
    • 23. Oktober 2010 um 19:31
    • #9
    Zitat von sutupud

    welches plugin benutzt du? tamperdata?
    requests, die von einem java-applet ausgehen werden von den plugins nicht erfasst!

    ähm ja ... na das muss ma ja mal wissen .. .seufz.

    Zitat von sutupud

    bist du dir sicher, dass du einen korrekten post-request absendest? sollte ungefähr so aussehen:

    Code
    POST /test/blah HTTP/1.1
    Content-Type: application/x-www-form-urlencoded
    Host: localhost
    Content-Length: 17
    
    
    test=x&lsk=asldkj


    Eigentlich sollte es reichen, den richtigen content type zu setzen:
    conn.addRequestProperty("Content-Type","application/x-www-form-urlencoded");
    und die daten dann richtig codiert in den output stream zu schreiben, um den rest kümmert sich java selbst.



    content type hab ich gesetzt . aber ich schaus mir montag nochmal mit deinen hints an :) thx !

  • .birgit.
    4
    .birgit.
    Mitglied
    Punkte
    135
    Beiträge
    24
    • 25. Oktober 2010 um 13:39
    • #10

    soo . meine letzten paar zeilen code im applet sind nun:

    Code
    conn.getOutputStream().flush();              
    conn.getOutputStream().close();
    InputStream in = conn.getInputStream();

    und im php ( bin hier kein großer könner , also vl hab ich da was falsch gmacht?) :

    Code
    print "_REQUEST: "; print_r($_REQUEST);
    print "_GET: "; print_r($_GET);
    print "_POST: "; print_r($_POST);

    krieg dann aber einen "Server returned HTTP response code: 405 for URL ..." was "Method not allowed" heißt .. jetz kenn ich mich dann echt nimmer aus ... :frowning_face:
    gibts da keine einfachere variante meine daten aus dem applet auf dem server zur verfügung zu stellen :confused: .seufz.

  • .birgit.
    4
    .birgit.
    Mitglied
    Punkte
    135
    Beiträge
    24
    • 25. Oktober 2010 um 13:53
    • #11

    hm . möglicherweise liegts am IIS ..

  • .birgit.
    4
    .birgit.
    Mitglied
    Punkte
    135
    Beiträge
    24
    • 27. Oktober 2010 um 17:04
    • #12

    sutupud . weißt du zufällig auch wie ma die "alle POST/GET daten auslesen" sache in asp machn kann also ohne sie direkt mit namen anzusprechen ...? wär vl gschickter in verbindung mim iis, hab dazu aber nix gscheits gfunden .. :thinking_face:

  • Maximilian Rupp 27. Dezember 2024 um 00:26

    Hat das Thema aus dem Forum Programmieren nach Entwicklung verschoben.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Rechtliches

Impressum

Datenschutzerklärung