2014-12-28 57 views
1

我正在使用libcurl獲取http頁面,並且遇到問題。 我想要得到的頁面是: http://newsnow.in/news/tunisians-head-to-elect-president-in-runoff-u-t-san-diego重定向失敗後,libcurl卡住

如果打開頁面,您將收到一條錯誤消息,指出頁面未正確重定向。當我嘗試讀取它時,libcurl簡單地掛起,沒有任何錯誤。我也設置了無效的超時時間,我想因爲它收到了重定向消息。 這裏是我的設置:

curl_easy_setopt(curl, CURLOPT_URL, "http://newsnow.in/news/tunisians-head-to-elect-president-in-runoff-u-t-san-diego"); // should be changed later with setLink() 
    /* example.com is redirected, so we tell libcurl to follow redirection */ 
    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); 
    curl_easy_setopt(curl, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Ubuntu; Linux i686; rv:31.0) Gecko/20100101 Firefox/31.0"); 

    curl_easy_setopt(curl, CURLOPT_TIMEOUT, 20); 

    /* send all data to this function */ 
    curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data); 
    curl_easy_setopt(curl, CURLOPT_WRITEDATA, filePtr); 

而且與通常的方式啓動:

res = curl_easy_perform(curl); 

什麼可能會解決這個問題的任何想法?

+0

你可以嘗試添加['CURLOPT_VERBOSE'(http://curl.haxx.se/libcurl/c/CURLOPT_VERBOSE.html)讓libcurl的輸出更多的消息,讓你知道什麼是繼續。或者你可以使用'curl'這個工具來獲取這個URL,看看發生了什麼。如果'curl'正常工作,你可以使用'--libcurl FILE'選項讓'curl'將這些選項翻譯成代碼給你。 – SSC

回答

1

對於任何人在將來遇到此問題,下面的@SSC評論我加了詳細標誌:

curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); 

,發現頁面重定向進入一個無限循環,這是很容易使用解決最大重定向標誌:

curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 3L);