2010-08-26 8 views
10

je suis un petit programme de http://curl.haxx.se/ et pendant que je cours il imprime toujours la page Comment puis-je désactiver la fonction d'impressionboucle lib dans C++ désactiver l'impression

#include <iostream> 
#include <curl/curl.h> 
using namespace std; 

int main() { 
    CURL *curl; 
     CURLcode res; 

     curl = curl_easy_init(); 
     if(curl) { 
     curl_easy_setopt(curl, CURLOPT_URL, "http://google.com"); 
     curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION,1); 
     res = curl_easy_perform(curl); 

     /* always cleanup */ 
     curl_easy_cleanup(curl); 
     } 
     return 0; 
} 

Répondre

16

Vous devez mettre en place un CURLOPT_WRITEFUNCTION pour le rendre pas utilisez stdout.

Il y a une explication ici (CURLOPT_WRITEFUNCTION): http://curl.haxx.se/libcurl/c/curl_easy_setopt.html

et ici (« Manipulation du libcurl facile): http://curl.haxx.se/libcurl/c/libcurl-tutorial.html

Fondamentalement ajouter la fonction:

size_t write_data(void *buffer, size_t size, size_t nmemb, void *userp) 
{ 
    return size * nmemb; 
} 

et appeler

curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); 

Devrait le faire.

-2

Ce qui a fonctionné pour moi a été en utilisant l'option CURLOPT_NOBODY dans le code, ici référencé: http://curl.haxx.se/libcurl/c/curl_easy_setopt.html#CURLOPTNOBODY

#include <iostream> 
#include <curl/curl.h> 
using namespace std; 

int main() { 
    CURL *curl; 
    CURLcode res; 

    curl = curl_easy_init(); 
    if(curl) { 
     curl_easy_setopt(curl, CURLOPT_URL, "http://google.com"); 
     curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION,1); 

     //USING CURLOPT NOBODY 
     curl_easy_setopt(curl, CURLOPT_NOBODY,1); 

     res = curl_easy_perform(curl); 

     /* always cleanup */ 
     curl_easy_cleanup(curl); 
    } 
    return 0; 
} 
+0

Suivi parce qu'il semblait plus facile que l'autre solution, mais la [documentation] (https://curl.haxx.se/libcurl/c/CURLOPT_NOBODY.html) dit explicitement que «pour HTTP (S), cela libcurl fait une requête HEAD», ce qui change généralement beaucoup le comportement du programme. –

1

Vous pouvez toujours obtenir des messages de diagnostic. Pour arrêter ces changer ou ajouter la ligne suivante:

curl_easy_setopt (curl, CURLOPT_VERBOSE, 0L); //0 disable messages