青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

woaidongmao

文章均收錄自他人博客,但不喜標題前加-[轉貼],因其丑陋,見諒!~
隨筆 - 1469, 文章 - 0, 評論 - 661, 引用 - 0
數據加載中……

libcurl應用:如何把下載內容寫入內存

libcurl的文檔中有getinmemory.c這個例子,把下載的網頁寫入自己定義的一個memorystruct中,看了這個例子的做法,它需要自己照顧內存的開辟,特別是需要在curl_easy_perform的調用函數中釋放已開辟的內存,很不利于函數的封裝,而且應用于multihandle的時候,運行時會出莫名其妙的assert錯誤。因此改寫了一下,將下載的內容放入stlstring中,這樣根本不需要自己照顧內存的開辟和釋放。源代碼如下:

#include <string>
#include "curl.h"

using namespace std;
static char errorBuffer[CURL_ERROR_SIZE];
static int writer(char *, size_t, size_t, string *);
static bool init(CURL *&, char *,string *);

int main()
{
    CURL *conn = NULL;
    CURLcode code;
string buffer;
 
    curl_global_init(CURL_GLOBAL_DEFAULT);
    char* url=" if (!init(conn,url,&buffer ))
    {
        fprintf(stderr, "Connection initializion failed\n");
        exit(EXIT_FAILURE);
    }
    code = curl_easy_perform(conn);
  
    if (code != CURLE_OK)
    {
        fprintf(stderr, "Failed to get '%s' [%s]\n", url, errorBuffer);
        exit(EXIT_FAILURE);
    }
curl_easy_cleanup(conn);
printf("%s\n",buffer.c_str());
    return 0;
   
}

static bool init(CURL *&conn, char *url,string *p_buffer)
{
    CURLcode code;
    conn = curl_easy_init();
    if (conn == NULL)
    {
        fprintf(stderr, "Failed to create CURL connection\n");
        exit(EXIT_FAILURE);
    }
    code = curl_easy_setopt(conn, CURLOPT_ERRORBUFFER, errorBuffer);
    if (code != CURLE_OK)
    {
        fprintf(stderr, "Failed to set error buffer [%d]\n", code);
        return false;
    }
    code = curl_easy_setopt(conn, CURLOPT_URL, url);
    if (code != CURLE_OK)
    {
        fprintf(stderr, "Failed to set URL [%s]\n", errorBuffer);
        return false;
    }
    code = curl_easy_setopt(conn, CURLOPT_FOLLOWLOCATION, 1);
    if (code != CURLE_OK)
    {
        fprintf(stderr, "Failed to set redirect option [%s]\n", errorBuffer);
        return false;
    }
    code = curl_easy_setopt(conn, CURLOPT_WRITEFUNCTION, writer);
    if (code != CURLE_OK)
    {
        fprintf(stderr, "Failed to set writer [%s]\n", errorBuffer);
        return false;
    }
    code = curl_easy_setopt(conn, CURLOPT_WRITEDATA, p_buffer);
    if (code != CURLE_OK)
    {
        fprintf(stderr, "Failed to set write data [%s]\n", errorBuffer);
        return false;
    }
    return true;
}

static int writer(char *data, size_t size, size_t nmemb, string *writerData)
{
    unsigned long sizes = size * nmemb;
    if (writerData == NULL) return 0;
    writerData->append(data, sizes);
    return sizes;
}

 

posted on 2009-03-13 12:07 肥仔 閱讀(3521) 評論(-2)  編輯 收藏 引用 所屬分類: 網絡編程

評論

# re: libcurl應用:如何把下載內容寫入內存  回復  更多評論   

I received my first <a href="http://bestfinance-blog.com/topics/mortgage-loans">mortgage loans</a> when I was 25 and it aided me very much. However, I require the credit loan also.
2010-11-26 20:54 | BurgessDEBORAH

# re: libcurl應用:如何把下載內容寫入內存  回復  更多評論   

To order thesis statement supposes to be simple. Nevertheless, good students must remember that only a trustworthy dissertation writing service can provide good quality.
2011-06-23 06:27 | dissertation writing service

# re: libcurl應用:如何把下載內容寫入內存  回復  更多評論   

Writing companies with many years of experience in producing of different sorts of resume papers will be good advisers for the people who need to order resume of the high quality.
2013-08-19 11:42 | over here
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            在线午夜精品自拍| 男女视频一区二区| 国产目拍亚洲精品99久久精品| 久久综合国产精品| 久久久久九九九| 久久精品人人做人人爽| 久久电影一区| 久久久久久**毛片大全| 美女免费视频一区| 欧美激情aaaa| 亚洲精品久久久久久久久| 久久网站免费| 久久精品人人做人人爽| 久久另类ts人妖一区二区| 久热爱精品视频线路一| 欧美精品一线| 国产精品国产三级国产专区53| 免费不卡在线视频| 欧美高清不卡在线| 国产精品实拍| 在线观看中文字幕不卡| 亚洲精品一区二区三区99| 亚洲一品av免费观看| 久久久久高清| 亚洲精品欧美日韩专区| 亚洲免费视频一区二区| 国产精品久久久久久影院8一贰佰 国产精品久久久久久影视 | 亚洲三级免费| 亚洲一区二区精品在线| 久久精品免视看| 亚洲激情欧美激情| 欧美伊人精品成人久久综合97| 久久久之久亚州精品露出| 欧美日韩精品一区二区三区| 精品999久久久| 午夜在线精品偷拍| 日韩视频不卡中文| 农夫在线精品视频免费观看| 国产亚洲精品综合一区91| 一本不卡影院| 欧美黑人一区二区三区| 欧美有码在线观看视频| 99视频一区| 欧美精品在线免费| 国产一区91| 亚洲一区欧美| 亚洲国产婷婷| 久久人人九九| 国产日韩欧美| 亚洲欧美日韩视频二区| 亚洲国产欧美在线人成| 久久婷婷影院| 在线观看成人av| 久久婷婷国产综合国色天香| 亚洲夜晚福利在线观看| 欧美色图天堂网| 日韩一级免费| 亚洲激情网址| 欧美精品激情在线| 日韩午夜在线电影| 欧美二区视频| 欧美18av| 一区二区三区高清视频在线观看| 欧美搞黄网站| 欧美成人精品| 一区二区不卡在线视频 午夜欧美不卡在 | 欧美1区3d| 最新69国产成人精品视频免费 | 亚洲无毛电影| 国产精品萝li| 欧美日韩在线影院| 精品动漫3d一区二区三区| 欧美在线视频播放| 午夜精品一区二区三区在线| 欧美日韩精品不卡| 日韩午夜免费| 亚洲精品资源美女情侣酒店| 欧美人成在线视频| 亚洲网在线观看| 一区二区国产日产| 欧美日韩中文字幕在线| 亚洲免费小视频| 午夜国产精品视频| 国产主播精品| 免费一级欧美片在线观看| 久久夜色精品国产| 亚洲啪啪91| av不卡在线| 国产日韩欧美麻豆| 免费在线欧美视频| 欧美日韩国产色综合一二三四 | 亚洲欧美卡通另类91av| 亚洲男人的天堂在线| 国产一区日韩二区欧美三区| 欧美成人一品| 国产精品午夜久久| 免费成人在线观看视频| 欧美另类视频| 久久精品国产一区二区三区免费看| 久久精品一区| 亚洲影音先锋| 欧美岛国激情| 久久亚洲免费| 国产精品久久久久av免费| 老司机精品视频一区二区三区| 欧美巨乳在线观看| 久久婷婷综合激情| 国产精品v欧美精品v日韩精品 | a91a精品视频在线观看| 韩国福利一区| 亚洲午夜精品| 99精品国产福利在线观看免费| 午夜精品福利电影| 亚洲午夜成aⅴ人片| 鲁大师影院一区二区三区| 亚洲欧美大片| 欧美久久视频| 欧美ed2k| 激情久久婷婷| 欧美一区二区观看视频| 亚洲一区二区三区涩| 美女精品视频一区| 美国三级日本三级久久99| 国产精品视区| 亚洲视频碰碰| 亚洲美女av黄| 亚洲在线第一页| 久久综合久久综合久久综合| 午夜精品剧场| 国产精品成人在线| 亚洲久久在线| 亚洲精品在线免费| 免费中文日韩| 亚洲国产精品女人久久久| 国语精品一区| 久久精品免费电影| 久色婷婷小香蕉久久| 国产综合香蕉五月婷在线| 欧美一区二区黄色| 久久先锋影音| 亚洲黄色成人| 免费成人高清视频| 亚洲国产精品电影| 一区二区三区久久网| 欧美日韩一区二区三区视频| 亚洲激情第一页| 一本色道久久88综合亚洲精品ⅰ| 欧美紧缚bdsm在线视频| 妖精视频成人观看www| 亚洲欧美制服中文字幕| 国产欧美一区二区三区在线老狼| 亚洲欧美日韩国产一区| 老司机免费视频一区二区| 在线看无码的免费网站| 欧美1区视频| 夜夜嗨av一区二区三区中文字幕 | 久久久久网址| 黄网站免费久久| 免费视频一区| 夜夜嗨av一区二区三区四区| 欧美在线地址| 永久免费毛片在线播放不卡| 欧美国产三级| 亚洲在线视频观看| 米奇777超碰欧美日韩亚洲| 亚洲精品永久免费精品| 国产精品毛片高清在线完整版| 欧美一区二区大片| 最新成人av网站| 在线天堂一区av电影| 国产美女精品视频免费观看| 久久久久91| 在线视频免费在线观看一区二区| 久久天堂成人| 亚洲综合欧美日韩| 亚洲大片免费看| 欧美日韩一区精品| 久久国产精品久久久久久电车 | 久久精品天堂| 中文av一区二区| 欧美福利影院| 欧美一区二区三区视频免费播放| 亚洲国产一区二区在线| 国产欧美日韩综合一区在线观看 | 中文高清一区| 亚洲欧美经典视频| 伊人久久综合97精品| 欧美精选一区| 久久香蕉国产线看观看网| 一本到12不卡视频在线dvd| 美国三级日本三级久久99| 亚洲欧美日韩综合| 亚洲精品视频在线观看网站| 韩国三级电影久久久久久| 欧美丝袜第一区| 欧美久久在线| 欧美 日韩 国产一区二区在线视频| 午夜一区二区三区在线观看| 99精品国产高清一区二区| 亚洲国产日韩在线|