0
我開發了一個將文件上傳到Dropbox的應用程序。我使用Libcurl(libcurl-7.21.7)和Openssl(0.9.8e)api將文件上傳到Dropbox。我注意到,有時候我的應用程序因服務器無響應而崩潰。我得到在控制檯上的錯誤是libssl讀取錯誤131導致應用程序崩潰
SSL閱讀:錯誤:00000000:LIB(0):FUNC(0):原因(0),錯誤號131關閉連接#0
我已經在實施的CURL_TIMEOUT我POST請求,但我仍然面臨這次崩潰。如果超時時間很短,我會不斷得到上傳錯誤,如果時間太長,那麼應用程序崩潰會導致上述錯誤。有沒有辦法解決請求中看到的問題以避免崩潰?
在調試時進一步發現崩潰實際上發生在ssl庫中,因爲應用程序崩潰。
請稍等一下就可以了這個?我使用
代碼是:
CURL *curl;
curl = curl_easy_init();
curl_global_init(CURL_GLOBAL_ALL);
curl_easy_setopt(curl, CURLOPT_CAINFO, NULL);
curl_easy_setopt(curl, CURLOPT_CAPATH, NULL);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 2);
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
curl_easy_setopt(curl, CURLOPT_URL,NOTIFICATIONURL);
curl_easy_setopt(curl, CURLOPT_POST, 1L);
curl_easy_setopt(curl, CURLOPT_FORBID_REUSE,1);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS,data());
curl_easy_setopt(curl, CURLOPT_POSTFIELDSIZE, datalength);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
long int maxconnectiontime = 600;
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT,maxconnectiontime);
long int maxtime = 1200;
curl_easy_setopt(curl, CURLOPT_TIMEOUT,maxtime);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
res = curl_easy_perform(curl);
if(res)
{
log("\n nCURL ERROR curl_easy_perform return %s [%d]",curl_easy_strerror(res),res);
}
curl_slist_free_all(headers);
curl_global_cleanup();
curl_easy_cleanup(curl);
我仍然停留在這個有人能。請幫助這個? –