libcurl https发布大文件ssl读取错误?

时间:2017-05-25 12:55:55

标签: ssl post https libcurl

我们希望通过https帖子将文件发布到网络服务器。 我们成功地将小文件发布到Web服务器,但是当我们发布大文件(大于10MB)时,我们收到此错误:

  • SSL读取:错误:00000000:lib(0):func(0):reason(0),errno 10054
  • Curl_http_done:名为premature == 1
  • 关闭连接0

libcurl版本:7.50.3

打开ssl版本:openssl-1.0.1t。

我们已经修改了Web服务器上帖子大小的配置。我们可以通过网页发布大文件,但同时,我们不能通过带有https帖子的libcurl发布大文件。 我们能做些什么吗?非常感谢!

我们为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();

1 个答案:

答案 0 :(得分:1)

考虑检查Web服务器上的POST大小。对于PHP,可以通过post_max_size

进行调整