In einenen Input einer Website schreiben.



  • Guten Tag Forum,

    ich will ein C++ Programm schreiben welches auf einer Internetseite ein Input-Feld auswählt und dort einen bestimmten Text eingibt und danach den Output ausließt. Ich hab schon gegoogelt und im Forum gesucht aber nichts gefunden. Kann mir vielleicht jemand helfen? Auch wenns nur Stichworte sind oder Links zu ähnlichen beiträgen die ich nicht gefunden habe. Vielen Dank, frobens



  • Curl



  • Super danke, werde mir dazu mal ein paar Sachen durchlesen, wenn jemand Links dazu hat bitte posten, danke.

    //edit:
    Also ich hab mir jetzt mal libcurl gedownloaded und mir auf der Seite die Funktionen angeschaut und die Documentation durchgelesen. Ich bin auch ein paar code examples durch gegangen aber ich weiß einfach nicht wie ich anfangen soll. In das POST input Feld soll einfach ein String reingeschrieben werden. Ich währe sehr dankbar wenn mir jemand einen anstoß geben könnte, oder einen Beispielcode kommentieren kann um die Funktionen und deren zusammenhang mal richtig zu verstehen. Wäre nett, gruß frobens



  • Kann mir vielleicht jemand den gefallen tun und einen kurzen Beispielcode mit curl_formadd schreiben der ein POST input ausfüllt und zum Beispiel einen Senden Button betätigt? Muss auch nich kompillierbar sein ich verzeifel nur an den Funktionen und deren zusammenhang, wäre sehr nett. Sorry für Doppelposting, aber ich steh total aufm Schlauch.

    frobens



  • Ich hab' zwar keine Ahnung von libcurl, aber grundsätzlich geht's so:
    1. send

    POST / HTTP/1.1
    Host: login.site.com
    ...
    Content-Length: 17
    
    user=uuu&pass=ppp
    

    2. recv
    Antwort lesen



  • char *data="name=daniel&project=curl";
       curl_easy_setopt(easyhandle, CURLOPT_POSTFIELDS, data);   
    curl_easy_setopt(easyhandle, CURLOPT_URL, "http://posthere.com/");
    
      curl_easy_perform(easyhandle); /* post away! */
    

    Also ich denk was ich brauch is der oben genannte code und das handle von curl_global_init() aber das ist doch nicht alles oder?

    gruß frobens



  • #include <iostream>
    #include <curl/curl.h>
    #include <curl/easy.h>
    using namespace std;
    
    int main(int argc, char *argv[])
    {
        CURL *easyhandle;
        CURLcode check;
       curl_global_init(CURL_GLOBAL_DEFAULT);
    
        printf("Started\r\n");
        easyhandle = curl_easy_init(); 
        if(easyhandle=0) printf("Handle: OK\r\n");
        else printf("Handle: FAILED\r\n");
    
        char *data="email=jkgh@trn.de\r\n";  
        check = curl_easy_setopt(easyhandle, CURLOPT_POSTFIELDS, data);   
         if(check!=0) printf("Set option 1 (email): FAILED\r\n");
         else printf("Set option 1 (email): OK\r\n");
    
         check = curl_easy_setopt(easyhandle, CURLOPT_URL, "www.url.com\r\n");
         if(check!=0) printf("Set option 2 (URL): FAILED\r\n");
         else printf("Set option 2 (email): OK\r\n");
    
         check = curl_easy_perform(easyhandle); 
         if(check!=0) printf("Perform: FAILED\r\n");
         else printf("Perform: OK\r\n");
      curl_easy_cleanup(easyhandle);
        system("PAUSE");
        return EXIT_SUCCESS;
    }
    

    Also das ist was ich bis jetzt hab, ich kanns kompillieren aber es funktioniert nicht, weiß jemand warum? Ich glaube es ist irgentwas am handle



  • if(easyhandle=0)
    

    irgendwas ist da doch falsch 😛



  • ja des hab ich auchschon gesehen aber es müsste ja trozdem funktionieren. Der rest funktioniert ja auch nicht, also denk ich, dass es irgendwie am handle liegt, wobei der fehlerhafte if clause ja nichts am handle ändert.

    //edit: Ok bis jetzt funktionierts, ich weiß nur noch nich wie ich den return value von curl_easy_init() überprüf, kann mir da vielleicht jemand helfen?

    außerdem muss ich noch den sumbit button betätigen.



  • so jetzt funktioniert alles so weit ich muss nurnoch den button drücken
    der code des button ist wie folgt:

    <input type="submit" value="Senden" />
    <form action="http://url.com/hallo.cgi" method="post">
    

    das problem ist, dass der button kein namen hat, kann mir vielleicht da jemand helfen?


Anmelden zum Antworten