curl CURLOPT_WRITEFUNCTION 的引數設定
註冊CSDN有十幾年了,第一次發文。寫部落格不求有沒有人看,最大的好處是可以記錄一些心得。
最近研究CURL,第一步就卡了一天。程式碼如下:
string operation="";
curl_easy_setopt(curl,CURLOPT_URL, "http://localhost/index2.php?username=superdos&password=123");
curl_easy_setopt(curl,CURLOPT_POST, true);
curl_easy_setopt(curl,CURLOPT_POSTFIELDS,operation.c_str());
curl_easy_setopt(curl,CURLOPT_FOLLOWLOCATION,
1L);
curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,&HelloWorld::writeFunction);
curl_easy_setopt(curl,CURLOPT_WRITEDATA, &buffer);
curl_easy_setopt(curl,CURLOPT_TIMEOUT_MS,5000);
ret = curl_easy_perform(curl);
if(ret==CURLE_OK)
{
log("ok");
}
curl_easy_cleanup(curl);
其中writeFunction的宣告: size_t HelloWorld::writeFunction(void* ptr,size_t size,size_t number,void *stream);
調適過程中發現,雖然curl_easy_perform()返回正常,但是writeFunction函式中,輸入引數的內容不正常。ptr,stream輸入的不是記憶體地址,而是返回資料的長度及批次。number反而是一個記憶體地址。
後來想到在模組間傳遞類成員函式指標,必須是static的,於是在write Function的宣告前加上static後正常。
相關文章
- php curl引數大全PHP
- curl的HTTP引數速查表HTTP
- Oracle CSS的引數設定 心跳時間設定OracleCSS
- vsftpd設定引數FTP
- RAC 特定引數設定
- 兩個引數設定
- curl常用引數詳解及示例
- Metasploit設定LHOST引數技巧
- Metasploit設定VERBOSE引數技巧
- pandas引數設定小技巧
- Metasploit設定HttpTrace引數技巧HTTP
- tomcat vm 引數設定Tomcat
- JVM常見引數設定JVM
- JVM引數設定大氣JVM
- SAP系統引數設定
- SAP 系統引數設定
- ORACLE JOB INTERVAL引數設定Oracle
- chrome啟動引數設定Chrome
- 設定NLS_LANG引數
- 函式定義、函式的引數、函式的預設引數函式
- MySQL的配置檔案的引數設定MySql
- Swift語言中為外部引數設定預設值可變引數常量引數變數引數輸入輸出引數Swift變數
- 2.7.11 檢視引數設定的方法
- 閃回與歸檔引數的設定
- 分割槽表中的maxvalue引數設定
- REMOTE_LOGIN_ PASSWORDFILE的引數設定REM
- Oracle安裝時shmmax引數的設定OracleHMM
- curl庫pycurl例項及引數詳解
- 【SQL 效能優化】引數設定SQL優化
- SAP 系統引數設定(zt)
- DBReplicator設定setpath.bat引數BAT
- javascript為函式設定預設引數JavaScript函式
- AIX7.1 VMO 引數預設設定AI
- 手工指定CHANNEL與設定PARALLELISM引數的異同以及FILESPERSET引數的作用Parallel
- 19c exadata不能設定的引數
- Flink提交Job的方式以及引數設定
- 設定並修改快速恢復區的引數
- 回滾段損壞後的引數設定