Domanda lib curl in c ++ disabilita la stampa


ho un piccolo programma da http://curl.haxx.se/ e mentre eseguo stampa sempre la pagina Web come posso disabilitare la funzione di stampa

#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;
}

12
2017-08-26 05:58


origine


risposte:


È necessario impostare un CURLOPT_WRITEFUNCTION per fare in modo che non utilizzi lo stdout.

C'è una spiegazione qui (sotto CURLOPT_WRITEFUNCTION): http://curl.haxx.se/libcurl/c/curl_easy_setopt.html

e qui (sotto "Handling the Easy libcurl): http://curl.haxx.se/libcurl/c/libcurl-tutorial.html

Fondamentalmente aggiungendo la funzione:

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

e chiamando

curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);

Dovrebbe farlo


21
2017-08-26 06:18



Puoi ancora ricevere messaggi diagnostici. Per interrompere questi o modificare o aggiungere la seguente riga:

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

1
2018-03-17 00:35



Ciò che ha funzionato per me è stato l'utilizzo dell'opzione CURLOPT_NOBODY nel codice, a cui si fa riferimento qui: 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;
}

-2
2017-08-11 15:36