[CURL] Error 400: "Bad Request"



  • Hallo Leute

    ich versuche mit "curl" eine HTML-Seite auszulesen.
    Folgender Code:

    bool GetHttpString( CURL *curl, string &url, string *FeedbackString )
    {
        if ( curl )
        {
            char errorBuffer[ CURL_ERROR_SIZE ];
            curl_easy_setopt( curl, CURLOPT_URL,            url.c_str() );
            curl_easy_setopt( curl, CURLOPT_HEADER,         false );
            curl_easy_setopt( curl, CURLOPT_FORBID_REUSE,   true );
            curl_easy_setopt( curl, CURLOPT_ERRORBUFFER,    errorBuffer );
            curl_easy_setopt( curl, CURLOPT_WRITEFUNCTION,  writer );
            curl_easy_setopt( curl, CURLOPT_WRITEDATA,      FeedbackString );
            curl_easy_setopt( curl, CURLOPT_USERAGENT,      Username.c_str() );
            curl_easy_setopt( curl, CURLOPT_TIMEOUT,        200 );
            curl_easy_setopt( curl, CURLOPT_FOLLOWLOCATION, true );
            curl_easy_setopt( curl, CURLOPT_MAXREDIRS,      50 );
            curl_easy_setopt( curl, CURLOPT_FAILONERROR,    true );
            curl_easy_setopt( curl, CURLOPT_SSL_VERIFYHOST, false );
            curl_easy_setopt( curl, CURLOPT_SSL_VERIFYPEER, false );
    
            CURLcode res;
            res = curl_easy_perform( curl );
            return ( res == CURLE_OK );
        }
        return false;
    }
    

    Leider liefert curl_easy_perform( curl ); FALSE zurück.
    Der Fehler ist folgender: Error 400: "Bad Request"...

    Nun hab ich bei google schonmal soviel rausgefunden, dass es möglicherweise am Protokoll liegt.

    Wenn ja: Kann ich der Anfrage an den Webserver mit CURL ein spezielles Protokoll aufzwingen ( z.B. HTTP 1.0 ? )?

    Anmerkung: aktuelle arbeite ich unter Linux (Gentoo), aber bin mir sicher, dass ich den Code schonmal unter Win2k laufen hatte, wo er funktioniert hat.

    gruß Tobi



  • Hab jetzt mal zwischendurch kurz den Username gewechselt und nu gehts wieder....

    k.a. woran es gelegen hat 😉



  • welchen compiler benutzt du? und wie lautet der befehl (z.B. cgi -Wall -o .. )



  • was macht curl_easy_perform( curl ); ?

    curl muss ja true sein um in die if bedingung zu gelangen .. dort kommt dann die zuweisung mit curl_easy_perform( curl ); ..


Anmelden zum Antworten