Clanintern Clanintern Clanintern

Forum

Öffentliche Foren
FORUM: Spiele & Computer THEMA: allgemeine fragen zu formularen
AUTOR BEITRAG
DoomTheBrain

RANG Godlike

#1 - 01.08 20:30

ich habe ein formular das normalerweise am browser ausgefüllt wird und dann an den server geschickt wird. nun meine frage, gibt es eine möglichkeit diese formulardaten irgendwie ohne den browser zu verschicken? also z.b. mit einem javaprogramm die daten an das formular/den server direkt zu schicken?

meine frage jetzt.. nach was muss ich da so googeln um informationen dazu zu erhalten? und wie wird das am ebsten umgesetzt?
horst

RANG Prophet of Clanintern

#2 - 01.08 22:27

Das sind meistens HTTP POST Requests. Abhängig vom Server müsste dein eigenes Programm deinen gängigen Client "vortäuschen" (zB IE oder FF).
DoomTheBrain

RANG Godlike

#3 - 01.08 23:01

ja genau sowas habe ich mir gedacht. und in welcher sprache/script macht man sowas am besten?
*al!ve* - will code for food

RANG Master of Clanintern

#4 - 02.08 07:35

Das wiederum hängt davon ab was du kannst und wofür du es verwenden willst. TCP-Socketverbindung öffnen, Request-Header reinschieben. Das sollte beispielsweise in Java in zehn Minuten geschrieben sein.
horst

RANG Prophet of Clanintern

#5 - 02.08 10:54

Google: www.javaworld.com/javaworld/javatips/jw-javatip34.html

Andere Sprachen haben sowas auch bequem eingebaut. Flex z.B. mit einem einfachen URLRequest.
DoomTheBrain

RANG Godlike

#6 - 02.08 11:32

ok danke für den link. aber wenn ich das richtig verstanden habe brauche ich da ein cgi scropt auf dem ziel server? auf den habe ich aber ja keine zugriff
vaest´ark // patrick *circle of confusion*

RANG Master of Clanintern

#7 - 02.08 12:38

hä?
du hast in deinem formular
<form [...] action="./script.php" [...]>

die url die du dann aufrufen musst, lautet dann entsprechend:
http://zielserver.local/script.php

dahin postest du deine formular-felder und fertig ist die laube.
DoomTheBrain

RANG Godlike

#8 - 02.08 13:03

so siehts ja aus:

code:

import java.awt.*;
import java.applet.*;
import java.io.*;
import java.util.*;
import java.net.*;


public class Happy extends Applet
    {
    private TextArea textArea = new TextArea (25, 70);

    public void init ()
{
try
    {
    URL url;
    URLConnection urlConn;
    DataOutputStream printout;
    DataInputStream input;

    // URL of CGI-Bin script.
    url = new URL (getCodeBase().toString() + "env.cgi");

    // URL connection channel.
    urlConn = url.openConnection();

    // Let the run-time system (RTS) know that we want input.
    urlConn.setDoInput (true);

    // Let the RTS know that we want to do output.
    urlConn.setDoOutput (true);

    // No caching, we want the real thing.
    urlConn.setUseCaches (false);

    // Specify the content type.
    urlConn.setRequestProperty
("Content-Type", "application/x-www-form-urlencoded");

    // Send POST output.
    printout = new DataOutputStream (urlConn.getOutputStream ());

    String content =
"name=" + URLEncoder.encode ("Buford Early") +
"&email=" + URLEncoder.encode ("buford@known-space.com");
    
    printout.writeBytes (content);
    printout.flush ();
    printout.close ();

    // Get response data.
    input = new DataInputStream (urlConn.getInputStream ());

    String str;
    while (null != ((str = input.readLine())))
{
System.out.println (str);
textArea.appendText (str + "\n");
}

    input.close ();

    // Display response.
    add ("Center", textArea);
    }
catch (MalformedURLException me)
    {
    System.err.println("MalformedURLException: " + me);
    }
catch (IOException ioe)
    {
    System.err.println("IOException: " + ioe.getMessage());
    }
} // End of method init().
    } // End of class Happy.


und ich denk mal die zeile muss ich meine url eingeben

code:

 // Specify the content type.
    urlConn.setRequestProperty
("Content-Type", "application/x-www-form-urlencoded");


sowie in dieser zeile
code:
String content =
"name=" + URLEncoder.encode ("Buford Early") +
"&email=" + URLEncoder.encode ("buford@known-space.com");

meine formularfelder und die werte die übermittelt werden sollen.

dann kommt aber immer der fehler: this protocol doesn't support output
vaest´ark // patrick *circle of confusion*

RANG Master of Clanintern

#9 - 02.08 14:05

Nein, du musst deine URL
url = new URL (getCodeBase().toString() + "env.cgi");
in dieser Zeile eingeben.

Kannst du Java?
DoomTheBrain

RANG Godlike

#10 - 02.08 14:25

naja eigentlich schon auch wenns hier nicht so aussieht

und irgendwie passiert trotzdem noch ein IOException