因為本人對web機制瞭解較少,在使用C/libcurl中遇到了很多問題。主要的解決方式: 1,在網頁源碼中找到提交form的定位。也就是網頁文件對應form中的action屬性。往往都是提交到jsp或者php等腳本中運行的,而不是直接提交到本網頁。 2,要註意http頭。http頭的不同會引起網頁的 ...
因為本人對web機制瞭解較少,在使用C/libcurl中遇到了很多問題。主要的解決方式:
1,在網頁源碼中找到提交form的定位。也就是網頁文件對應form中的action屬性。往往都是提交到jsp或者php等腳本中運行的,而不是直接提交到本網頁。
2,要註意http頭。http頭的不同會引起網頁的不同反應。我做的一個小項目,在提交到兩個網址php腳本時,都因為http頭引起php腳本執行不正確。
3,重定向問題。
在一些網頁中,返回的網頁數據會帶有重定向信息,這時要打開curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, true);
以我目前掌握的,這個參數會自動跟蹤http頭中的重定向。這裡之所以要打開,是因為重定向有一個超時參數,如果未能鏈接,
也會導致網頁執行出現問題。
4,關於https,在編譯libcurl的時候要加入openssl的支持。
5,在代碼中加入curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);可以追蹤數據的傳輸狀態。
6,如果還是解決不了,使用Fiddler抓包。相比wireshark,Fiddler抓取https的包更加方便和快捷。
最後再強調一下第六條:Fiddler可以更方便地抓https,通過比對包的不同可以輕鬆解決碰到的各種問題。