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 命令引數解析
- curl的HTTP引數速查表HTTP
- tomcat vm 引數設定Tomcat
- curl常用引數詳解及示例
- 2.7.11 檢視引數設定的方法
- JVM常見引數設定JVM
- pandas引數設定小技巧
- Metasploit設定VERBOSE引數技巧
- Metasploit設定HttpTrace引數技巧HTTP
- Metasploit設定LHOST引數技巧
- JVM引數設定大氣JVM
- MySQL的配置檔案的引數設定MySql
- Flink提交Job的方式以及引數設定
- 19c exadata不能設定的引數
- Java 動態設定 JVM 引數的方法JavaJVM
- 2.6.10 設定許可證引數
- [20200220]windows設定keepalive引數.txtWindows
- 引數的定義和引數的傳遞
- webapi 設定swagger上請求引數的預設值WebAPISwagger
- Nginx伺服器常用引數設定Nginx伺服器
- Azure Blob (三)引數設定說明
- basler工業相機引數設定
- Java設定JSON字串引數編碼JavaJSON字串
- java 執行緒池的初始化引數解釋和引數設定Java執行緒
- curl 設定https 不驗證證書HTTP
- JVM引數設定的一些參考方法JVM
- XamarinAndroid元件教程設定動畫的時長引數NaNAndroid元件動畫
- 2.7.6.2 設定或修改初始化引數的值
- log4j的基本使用和引數設定
- springmvc引數設定預設值,多地址請求SpringMVC
- 建立 MQTT 連線時如何設定引數?MQQT
- PostgreSQL DBA(1) - 資料庫引數設定#1SQL資料庫
- PostgreSQL DBA(2) - 資料庫引數設定#2SQL資料庫
- 2024最新版IDEA設定啟動引數Idea
- vue3 獲取和設定路由引數Vue路由
- 系統引數nofile設定不生效問題
- Windows系統常用系統引數設定文件Windows