本節主要介紹curl_easy_setopt中跟http相關的參數。注意本節的闡述都是以libcurl作為主體,其它為客體來闡述的。
1. CURLOPT_URL
設定訪問URL
2. CURLOPT_WRITEFUNCTION,CURLOPT_WRITEDATA
回呼函數原型為:size_t function( void *ptr, size_t size, size_t nmemb, void *stream); 函數將在libcurl接收到資料後被調用,因此函數多做資料儲存的功能,如處理下載檔案。CURLOPT_WRITEDATA 用於表明CURLOPT_WRITEFUNCTION函數中的stream指標的來源。
3. CURLOPT_HEADERFUNCTION,CURLOPT_HEADERDATA
回呼函數原型為 size_t function( void *ptr, size_t size,size_t nmemb, void *stream); libcurl一旦接收到http 頭部資料後將調用該函數。CURLOPT_WRITEDATA 傳遞指標給libcurl,該指標表明CURLOPT_HEADERFUNCTION 函數的stream指標的來源。
4. CURLOPT_READFUNCTION CURLOPT_READDATA
libCurl需要讀取資料傳遞給遠程主機時將調用CURLOPT_READFUNCTION指定的函數,函數原型是:size_t function(void *ptr, size_t size, size_t nmemb,void *stream). CURLOPT_READDATA 表明CURLOPT_READFUNCTION函數原型中的stream指標來源。
5. CURLOPT_NOPROGRESS,CURLOPT_PROGRESSFUNCTION,CURLOPT_PROGRESSDATA
跟資料轉送進度相關的參數。CURLOPT_PROGRESSFUNCTION 指定的函數正常情況下每秒被libcurl調用一次,為了使CURLOPT_PROGRESSFUNCTION被調用,CURLOPT_NOPROGRESS必須被設定為false,CURLOPT_PROGRESSDATA指定的參數將作為CURLOPT_PROGRESSFUNCTION指定函數的第一個參數
6. CURLOPT_TIMEOUT,CURLOPT_CONNECTIONTIMEOUT:
CURLOPT_TIMEOUT 由於設定傳輸時間,CURLOPT_CONNECTIONTIMEOUT 設定串連等待時間
7. CURLOPT_FOLLOWLOCATION
設定重定位URL
CURLOPT_RANGE: CURLOPT_RESUME_FROM:
斷點續傳相關設定。CURLOPT_RANGE 指定char *參數傳遞給libcurl,用於指明http域的RANGE頭域,例如:
表示頭500個位元組:bytes=0-499
表示第二個500位元組:bytes=500-999
表示最後500個位元組:bytes=-500
表示500位元組以後的範圍:bytes=500-
第一個和最後一個位元組:bytes=0-0,-1
同時指定幾個範圍:bytes=500-600,601-999
CURLOPT_RESUME_FROM 傳遞一個long參數給libcurl,指定你希望開始傳遞的
位移量。