Я пытаюсь разработать приложение, которое использует RESTful API для сервера через SSL.Я наткнулся на этот пример , но я не могу заставить его работать.
Я сократил его до этого примера ниже.Он компилируется и запускается, но возврат от вызова curl_global_sslset () равен 2 (CURLSSLSET_TOO_LATE), а не CURLSSLSET_UNKNOWN_BACKEND.
Обратите внимание, что я не сделал вызов curl_gloin () * +1010 *.Согласно документации libcurl для curl_global_sslset () :
Если бэкэнд был настроен ранее или если curl_global_init уже был вызван, функция возвращает CURLSSLSET_TOO_LATE.
Я собираю и запускаю на 64-битном Cygwin, установленном в Windows 7. Выходные данные curl-config --version и curl-config --features отображаются подкод.
Почему это происходит и что можно сделать, чтобы это исправить?
#include <ctype.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <curl/curl.h>
/*
* An SSL-enabled libcurl is required for this sample to work (at least one
* SSL backend has to be configured).
*
* **** This example only works with libcurl 7.56.0 and later! ****
*/
int main(void)
{
CURLsslset result;
const curl_ssl_backend **list;
int i;
result = curl_global_sslset(-1, NULL, &list);
if (result == CURLSSLSET_UNKNOWN_BACKEND) {
for(i = 0; list[i]; i++) {
printf("SSL backend #%d: '%s' (ID: %d)\n",
i, list[i]->name, list[i]->id);
}
}
else {
printf("curl_global_sslset returns %d\n", result);
}
return 0;
}
Выводы Curl-config:
$ curl-config --version
libcurl 7.59.0
$ curl-config --features
SSL
IPv6
UnixSockets
libz
AsynchDNS
IDN
GSS-API
PSL
SPNEGO
Kerberos
NTLM
NTLM_WB
TLS-SRP
HTTP2
HTTPS-proxy