使用libcurl回調函數要注意的問題

static size_t geturl_callback( void *ptr, size_t size, size_t nmemb, void *stream )
{
    int nsize = size * nmemb;
    std::string *strdata = (std::string*) stream;
    if (strdata)
    {
        strdata->append( (const char*)ptr, nsize );
    }

    return nsize;
}

 

若不返回每次接收的數據大小,回調函數只會執行一次,然後直接跳出回調函數,導致HTTP接收失敗。

不過奇怪的是,如果將接收的數據寫入文件,那麼在回調函數中不返回值也一樣能接收成功

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章