1、對於頁面跳轉的**,最好先用sniffer把http資料報全部抓下,分析協議頭,尤其是要對應好post後的url位址,以及記住cookie中的session_id(情況根據各**會有所差別)。
2、 curl_easy_setopt(curl,curlopt_post,1);
使用post方式
3、curl_easy_setopt(curl,curlopt_postfields,buffer)
buffer對應content中的內容,類似"name=zhangsan&pwd=1234&submit2=%b5%c7+%c2%bc&oriurl=%2f&flag=0"。
4、res=curl_easy_setopt(curl,curlopt_cookiefile,"");
記下cookie到記憶體,可以在以後跳轉中不用再設定cookie內容(根據**設計有所差別)
curl_easy_setopt(curl,curlopt_url,host+posturl1)//首個位址
5、curl_easy_perform(curl);
6、curl_easy_getinfo(curl,curlinfo_response_code,&infocode);
7、通過的到的返回碼,準備跳轉
8、curl_easy_setopt(curl,curlopt_url,host+url2)
新的跳轉頁面位址
9、curl_easy_perform(curl);
最後搞定。
最簡單的例子:
#include ;
#include ;
#include ;
int main(int argc, char *argv)
curl = curl_easy_init(); //初始化乙個curl型別的指標
if(curl!=null)
return 0;
}
注:官網上有很多資料
教程、手冊、例子,應有盡有。
另外,往螢幕上輸出是 libcurl 的預設動作,如果要想改變,可以看下如下幾個連線:
c/cu ... tml#curloptreaddata
c/cu ... curloptreadfunction
VS整合libcurl時遇到的問題總結
libcurl作為乙個優秀的網路庫,經常被整合到工程中。記錄一下在vs中整合libcurl出現了問題,之所以需要單獨記錄,是因為問題比較多,b汗!注 這些問題的方案大都來自其他博主,在此彙總記錄。首先的問題是libcurl的配置,當然,這其實也不能算是個問題 工程配置中新增標頭檔案和lib檔案的引用...
編譯libcurl日誌
中所述的 檔案已經消失。在中尋找發現乙個trash 進入後可以找到舊的檔案。解壓後,裡面沒有lib,也沒有原始碼,這是個什麼鬼。後來知道裡面的curl.exe是要用命令列來使用的。再試另乙個情況跟上乙個一樣,沒有有用的東西。想弄乙個不帶ssl的怎麼這麼難?算了,按照 所述的編譯乙個帶ssl的庫吧。還...
libcurl使用注意
libcurl使用注意 注意點1 現象 http短連線超過一定次數後一直返回錯誤7,即curle couldnt connect 過程有列印 immediate connect fail for 114.116.228.34 too many open files 使用netstat檢視發現有大量的...