Html Textbox füllen, Button drücken etc.?

  • Moin,


    nehmen wir mal die Seite codepad.org. Wie kann ich dort einen Text in die Textbox einfügen, auf den Button klicken und nach dem hochladen des Textes den Link herausfinden? HttpRequest oder was brauch ich da? Und wie genau funktioniert das dann ?


    MfG


    Brando

  • Zuerst solltest du dir anschauen wie die Seite aufgebaut ist.
    Du musst wissen, mit welcher Methode die Daten übertragen werden (POST oder GET).
    Und du solltest wissen, wie die Input Boxen und der Submit Button heißt.


    Dafür empfehle ich das Analyse Tool LiveHttpHeaders, ein Firefox Addon, welches ich schon seit Jahren nutze.
    Anhand deines Beispiels für codepad.org habe ich das mal gemacht.



    Die Ausgabe:


    Die "Analyse":


    Code
    1. lang=C&code=asdf&private=True&submit=Submit


    Wir können hier sehen das die Daten via POST übertragen werden.
    Und wir sehen natürlich noch mehr:


    • lang=C --> Das "C" steht für die Ausgewählte Syntax
    • code=asdf --> Das "asdf" ist der Inhalt unserer "Code" Box
    • private=true --> Die Option für "privat" wurde angeklickt. (true)
    • submit=Submit --> Unser Button "submit" wurde geklickt

    Das können wir zusammenbauen:


    Den Response kannst du jetzt noch abfangen, aber da du ja schon weißt wie du den Quelltext von HTML Seiten lesen kannst, solltest du das können.
    dmix

    And the reign will kill us all
    We throw ourselves against the wall
    But no one else can see
    The preservation of the martyr in me


    Slipknot - Psychosocial

  • Danke dmix.


    Durch das Ausführen von deinem Code, sollte doch jetzt eigentlich ein Paste hochgeladen werden?
    Ich habe Private auf false gestellt und ein paar hochgeladen aber unter "Recent Pastes" kommt nie etwas. Postet man manuel was, sieht man es sofort.

  • Der Response sieht doch so aus oder nicht?


    Code
    1. HttpWebResponse httpWebesponse = (HttpWebResponse)req.GetResponse();
    2. //Translate data from the Web-Response to a string
    3. dataStream = httpWebesponse.GetResponseStream();
    4. StreamReader streamreader = new StreamReader(dataStream, Encoding.UTF8);
    5. string response = streamreader.ReadToEnd();
    6. streamreader.Close();


    Im String response steht dann der Quelltext von codepad.org, mehr aber auch nicht. Also hat das uploaden doch nicht geklappt.
    (Das Thema ist volkommenes Neuland für mich)

  • Bau mal vor Stream.Close noch ein Stream.Flush() ein. Sonst landen die POST-Daten nicht im Stream sondern gehen irgentwo in den tiefen deines RAMs verloren ...


    PS: Und lass das www bei WebRequest.Create weg ... dann gehts ;)
    PSS: Das mit dem www liegt am WebServer. Der hat eine eingestellte Regel, dass Anfragen auf http://www.codepad.org automatisch auf codepad.org (ohne www) umgeleitet werden. Und diese Regel greift vor dem Paste-PHP-Script. Daher gehts nicht.


    Gruß
    florian0