1

晚上好,

我需要将 libCurl 实现到我们的一个 Android 项目中。我使用 JNI 调用带有 libCurl 代码的 c++ 类。一切都很完美,但看在上帝的份上,我无法使用 https url 让它工作。我总是收到 CURLE_UNSUPPORTED_PROTOCOL 错误。

我正在使用 这个带有 SSL 的预构建 curl 库

我的 C++ 代码如下所示:

curl_easy_setopt(curl, CURLOPT_URL, "https://www.es....");
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_data);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, (void *)&chunk);
curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 0);
curl_easy_setopt(curl, CURLOPT_PROGRESSDATA, (void *)&cbProgress);
curl_easy_setopt(curl, CURLOPT_PROGRESSFUNCTION, progress_func);
curl_easy_setopt(curl, CURLOPT_SSLVERSION, 3);

status = curl_easy_perform(curl);

我对 iOS 使用相同的代码,它适用于 https。同样,使用 http url 效果很好。

任何帮助都非常感谢!

4

2 回答 2

1

libcurl 错误手册页

   CURLE_UNSUPPORTED_PROTOCOL (1)
          The URL you passed to libcurl used a protocol that this  libcurl
          does  not  support.  The  support might be a compile-time option
          that you didn't use, it can be a misspelled protocol  string  or
          just a protocol libcurl has no code for.

compile-time option是重要的外卖。因此,请测试您正在使用的库curl_version_info()此处的手册页)以查看它是否包含SSL支持。图书馆文档可能会说它有SSL支持,但请确认。如果它不包含SSL支持,那么 no https

于 2013-07-26T06:20:56.113 回答
0

您需要使用“--with-ssl”编译 libcurl.so

这真的很痛苦。参考“ http://ieroot.com/2015/03/29/1728.html ”,可能对你有所帮助。

于 2015-04-02T09:23:42.647 回答