libcurl Problem



  • Hi,

    ich bin gerade dabei ein Tool zu schreiben, mit dem man von freakshare.net automatisiert runterladen kann.

    Allerdings stecke ich gerade an einer Stelle fest.

    #define URL "http://freakshare.net/files/0qqtwxt1/Testdatei.html"
    
    #include <stdio.h>
    #include <string.h>
    
    #include <curl/curl.h>
    #include <curl/types.h>
    #include <curl/easy.h>
    #include <winbase.h>
    
    int main(int argc, char *argv[])
    {
      CURL *curl;
      CURLcode res;
    
      struct curl_httppost *formpost=NULL;
      struct curl_httppost *lastptr=NULL;
      struct curl_slist *headerlist=NULL;
      static const char buf[] = "Expect:";
    
      curl_global_init(CURL_GLOBAL_ALL);
    
      curl = curl_easy_init();
      /* initalize custom header list (stating that Expect: 100-continue is not
         wanted */
      headerlist = curl_slist_append(headerlist, buf);
      if(curl) {
        /* what URL that receives this POST */
        curl_easy_setopt(curl, CURLOPT_URL, URL);
        curl_easy_setopt(curl, CURLOPT_COOKIEFILE, "");
        if ( (argc == 2) && (!strcmp(argv[1], "noexpectheader")) )
          /* only disable 100-continue header if explicitly requested */
          curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headerlist);
        curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
        ///
        ///
        ///Seite aufrufen
        ///
        ///
        res = curl_easy_perform(curl);
        curl_formfree(formpost);
    
      }
    
      ///
      ///
      ///60 Sekunden warten
      ///
      ///
      Sleep(1000 * 60); //1000 * 60ms = 60s
    
      curl_formadd(&formpost,
                   &lastptr,
                   CURLFORM_COPYNAME, "Free Download",
                   CURLFORM_COPYCONTENTS, "Download",
                   CURLFORM_END);
    
      if(curl) {
        curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
        ///
        ///
        ///Auf download klicken
        ///
        ///
        res = curl_easy_perform(curl);
        curl_formfree(formpost);
      }
    
      curl_formadd(&formpost,
                   &lastptr,
                   CURLFORM_COPYNAME, "Download",
                   CURLFORM_COPYCONTENTS, "Download",
                   CURLFORM_END);
    
        if(curl)
        {
            curl_easy_setopt(curl, CURLOPT_HTTPPOST, formpost);
            ///
            ///
            ///Auf den zweiten Downloadbutton klicken
            ///
            ///
            res = curl_easy_perform(curl);
        }
    
        curl_easy_cleanup(curl);
        curl_slist_free_all (headerlist);
        curl_formfree(formpost);
        return 0;
    }
    

    Wie an der Testdatei, deren URL sich im Quellcode befindet zu erkennen ist, gelangt man zuerst auf eine Seite, auf der man 60 Sekunden warten muss. Danach kann man auf Download klicken. Dann kommt nochmal eine Seite, auf der man wieder auf Download klicken muss. Und danach(je nach Browser) öffnet sich ein Fenster, das fragt ob man die Datei öffnen/speichern will.

    Mein Programm müsste ja jetzt bis zu dem Punkt an dem es auf den Button klick gelangen, allerdings weiß ich nicht, was ich danach machen muss, damit es die Datei auch tatsächlich runterlädt.



  • Weiß keiner wie man das löst?



  • *push*


Log in to reply