2017-05-25 101 views
0

我們想通過https post發佈文件到web服務器。 我們成功發佈小文件到網絡服務器,但是當我們發佈大文件(啤酒超過10MB),我們收到此錯誤:libcurl https發佈大文件ssl讀取錯誤?

  • SSL閱讀:錯誤:00000000:LIB(0):FUNC(0):原因(0),錯誤號10054
  • Curl_http_done:所謂過早== 1
  • 截止連接0

libcurl的版本:7.50.3

開放SSL版本:OpenSSL的-1.0.1t。

我們已經修改了Web服務器上的發佈大小的配置。我們可以通過網頁發佈大文件,但同時我們不能通過https post發佈大文件。 我們可以用這個做什麼?非常感謝!

我們設置這一職位的選項如下:

curl_global_init(CURL_GLOBAL_ALL); 
CURL* hCurl = curl_easy_init(); 
if (hCurl != NULL) 
{ 
    curl_httppost* pFormPost = NULL; 
    curl_httppost* pLastElem = NULL; 
    curl_formadd(&pFormPost, &pLastElem, 
     CURLFORM_COPYNAME, "ufile01", 
     CURLFORM_FILE, "vlc.rar", 
     CURLFORM_CONTENTTYPE, "application/octet-stream", 
     CURLFORM_END); 
    curl_easy_setopt(hCurl, CURLOPT_HTTPPOST, pFormPost); 
    curl_easy_setopt(hCurl, CURLOPT_URL, url); 
    curl_easy_setopt(hCurl, CURLOPT_SSL_VERIFYPEER, 0L); 
    curl_easy_setopt(hCurl, CURLOPT_SSL_VERIFYHOST, 0L); 
    CURLcode res = curl_easy_perform(hCurl); 
    if (res != CURLE_OK) 
    { 
     printf("Error"); 
    } 
    curl_formfree(pFormPost); 
    curl_easy_cleanup(hCurl); 
} 
curl_global_cleanup(); 

回答

0

考慮到Web服務器上檢查POST的大小。對於PHP,可以通過調整post_max_size

+0

感謝您的回覆。我們已經修改了Web服務器上郵件大小的配置。我們可以通過網頁發佈大文件,但同時我們不能通過https post發佈大文件。 – lym

+0

10054與網絡有關(TCP連接重置),閱讀此評論的更多信息https://stackoverflow.com/a/25496383/775159 我也可以建議禁用AV/FW主機上運行libcurl從 –

+0

我有已經關閉AV/FW,但也是一樣的。我們使用IIS7.5作爲我們的Web服務器,並且在客戶端上,我注意到libcurl打印出「使用TLSV1.0/AES128-SHA的SSL連接」。是否有可能因爲openssl版本? – lym