2012-03-03 56 views
0

我使用的libcurl到index.php文件具有以下簡單的代碼寫入後數據文件HTTP POST是中使用cUrl不工作(libcurl中)

if (isset($_POST['abc'])){ 
    $log="abc.log"; 
    $h=fopen($log,"w"); 
    fwrite($h,$_POST['abc']); 
    fclose($h); 
} 
我的Web服務器上 製作簡易HTTP POST請求

,而我寫的C++代碼實現HTTP POST請求如下

CURL *curl; 
    CURLcode res; 
    curl=curl_easy_init(); 
    string url=AnsiString("http://127.0.0.1/curl/index.php?abc=123").c_str(); 
    string data="abc=3434"; 
    if (curl) { 

     curl_easy_setopt(curl, CURLOPT_POST, 1); 
     curl_easy_setopt(curl, CURLOPT_POSTFIELDS,AnsiString("abc=3434").c_str()); 
     curl_easy_setopt(curl, CURLOPT_URL,AnsiString("http://127.0.0.1/curl/index.php").c_str()); 
     res=curl_easy_perform(curl); 
     curl_easy_cleanup(curl); 
    } 

首先,發佈啓用curl_easy_setopt(curl, CURLOPT_POST, 1);

第二,如果我調試代碼我得到res(返回值)CURL_OK狀態 也TCP 127.0.1:80將被建立,每次我通過netstat -ano 15運行代碼的監測,但該文件abc.log是空

什麼問題有了這個?? 你沒有任何想法指點我正確的方式嗎?

謝謝 提前!

+0

什麼_is_錯了嗎?什麼沒有發生?你的網絡服務器日誌文件呢?他們展示什麼? – Mat 2012-03-03 11:44:51

+0

文件'abc.log'是空的:( – 2012-03-03 11:46:07

+0

嗯,你沒有設置任何後期數據(該部分被註釋掉了),所以這是我的期望 – Mat 2012-03-03 11:48:24

回答

0

發送CURLOPT_POSTFIELDSIZE幫助!
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE,data.Length());

Apache日誌說,這是確定您發送POST

127.0.0.1 - - [03/Mar/2012:17:39:06 +0500] "POST /curl/post.php HTTP/1.1" 200 -

+0

我想出了一個想法,使用上面的代碼可以使用C++發送POST請求!太好了! – 2012-03-03 12:50:06