c++ curl 登陆renren.com (cookie的使用)<转>

size_t write_callback( void *ptr, size_t size, size_t nmemb, void *stream )
{
    int len = size * nmemb;
    int written = len;

    if ( access( (char*)stream, 0 ) == -1 )
    {
        fp = fopen( (char*) stream, "wb" );
    }
    else
    {
        fp = fopen( (char*) stream, "ab" );
    }
    if (fp)
    {
        fwrite( ptr, size, nmemb, fp );
    }
    return written;
}


int PostUrlchar* url, void *savepath)
{
    // 初始化libcurl
    CURLcode return_code;
    return_code = curl_global_init(CURL_GLOBAL_WIN32);
    if (CURLE_OK != return_code)
        return 0;
    CURL *curl_handle;
    CURLcode res;
    curl_handle = curl_easy_init();
    curl_easy_setopt(curl_handle, CURLOPT_URL, url);
    curl_easy_setopt(curl_handle, CURLOPT_FOLLOWLOCATION, true);
    curl_easy_setopt(curl_handle, CURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8"); 
    curl_easy_setopt(curl_handle, CURLOPT_COOKIEJAR, "cookie.txt"); 
    curl_easy_setopt(curl_handle, CURLOPT_COOKIEFILE, "cookie.txt"); 
    curl_easy_setopt(curl_handle, CURLOPT_WRITEFUNCTION, write_callback);
    curl_easy_setopt( curl_handle, CURLOPT_WRITEDATA, savepath );
    curl_easy_setopt(curl_handle, CURLOPT_POSTFIELDS,postLoginData);
    res = curl_easy_perform(curl_handle); 
    curl_easy_cleanup(curl_handle);
    curl_global_cleanup();
    if (res == CURLE_OK)
    {
        return 1;
    }
    return 0;
}

int GetUrl(string url,void *buffer)
{
    // 初始化libcurl
    CURLcode return_code;
    return_code = curl_global_init(CURL_GLOBAL_WIN32);
    if (CURLE_OK != return_code)
        return 0;
    CURL *easy_handle = curl_easy_init();
    if (NULL == easy_handle)
    {  
        curl_global_cleanup();
        return 0;
    }
    // 设置easy handle属性
    curl_easy_setopt(easy_handle, CURLOPT_USERAGENT,"Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.2.8) Gecko/20100722 Firefox/3.6.8"); 
    curl_easy_setopt(easy_handle,CURLOPT_FOLLOWLOCATION,TRUE); 
    curl_easy_setopt(easy_handle, CURLOPT_URL, url.c_str());
    curl_easy_setopt(easy_handle, CURLOPT_WRITEFUNCTION, write_callback);
    curl_easy_setopt(easy_handle, CURLOPT_WRITEDATA, buffer);
    curl_easy_setopt(easy_handle, CURLOPT_COOKIEFILE,"cookie.txt");
    curl_easy_setopt(easy_handle, CURLOPT_COOKIEJAR, "cookie.txt");
    curl_easy_perform(easy_handle); 
    curl_easy_cleanup(easy_handle);
    curl_global_cleanup();
    return 1;
}
1.先post登陆到url。

2.再访问自己的主页。

可以使用Wireshark抓取各个web地址,及post具体格式的数据。

原帖地址:https://www.xuebuyuan.com/725671.html

原文链接: https://www.cnblogs.com/wainiwann/p/10950358.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    c++ curl 登陆renren.com (cookie的使用)<转>

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/295883

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月15日 下午5:19
下一篇 2023年2月15日 下午5:19

相关推荐