Save cURL content result into a string in C++

前端 未结 7 1874
鱼传尺愫
鱼传尺愫 2020-11-30 22:16
int main(void)
{
  CURL *curl;
  CURLcode res;

  curl = curl_easy_init();
  if(curl) {
    curl_easy_setopt(curl, CURLOPT_URL, \"http://www.google.com\");
    curl_         


        
相关标签:
7条回答
  • 2020-11-30 23:13

    This might not work right away but should give you an idea:

    #include <string>
    #include <curl.h>
    #include <stdio.h>
    size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) {
        size_t written;
        written = fwrite(ptr, size, nmemb, stream);
        return written;
    }
    
    int main() {
        std::string tempname = "temp";
        CURL *curl;
        CURLcode res;
        curl = curl_easy_init();
        if(curl) {
          FILE *fp = fopen(tempname.c_str(),"wb");
          curl_easy_setopt(curl, CURLOPT_URL, "http://www.google.com");
          curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); 
          curl_easy_setopt(curl, CURLOPT_WRITEDATA, fp);
          res = curl_easy_perform(curl);
          curl_easy_cleanup(curl);
          fclose(fp);
          fp = fopen(tempname.c_str(),"rb");
          fseek (fp , 0 , SEEK_END);
          long lSize = ftell (fp);
          rewind(fp);
          char *buffer = new char[lSize+1];
          fread (buffer, 1, lSize, fp);
          buffer[lSize] = 0;
          fclose(fp);
          std::string content(buffer);
          delete [] buffer;
        }
    }
    
    0 讨论(0)
提交回复
热议问题