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