我想用libcurl c api發佈一些東西到網站上。當我從瀏覽器訪問網址時,該網址起作用。我從瀏覽器欄中複製相同的內容並在程序中訪問它。程序在curl_easy_perform調用中掛起,並且永遠不會返回。我還提供了一個write_callback,但它永遠不會被調用。 這段代碼下面有什麼問題curl不工作時粘貼在瀏覽器地址欄中工作的相同的網址
爲了保護隱私,我從下面的代碼片段中刪除了url。
int main(void)
{
CURLcode res;
CURL *curl = curl_easy_init();
if(curl) {
curl_easy_setopt(curl, CURLOPT_URL, "");
curl_easy_setopt(curl, CURLOPT_POST, 1);
//curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 1L);
//curl_easy_setopt(curl, CURLOPT_TIMEOUT, 1L);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback);
res = curl_easy_perform(curl);
if (res != CURLE_OK) fprintf(stderr,"failed: %s", curl_easy_strerror(res));
curl_easy_cleanup(curl);
}
return -1;
}
逃避你的後場鍵/值也許您正試圖獲取該網站上的一些限制(例如:UA,Referrer) – wong2 2011-04-29 05:00:03
您是否嘗試過使用更普遍可用的網站來運行此操作?我用http://google.com運行了您的示例,並且它工作得很好。當然,我只是打印出傳遞給write_callback的size/nmemb值,所以不可能判斷回調函數是否有問題。 – unpythonic 2011-04-29 05:26:33