libcurl отлично работает на виртуальной машине Ubuntu, но не может разрешить хост на Windows

0

как это может быть, что в windows visual studio 2013 curl_easy_perform возвращает cannot_resolve хост, но тот же самый код в том же компьютере отлично работает в виртуальной машине ubuntu?

CURL *curl;
curl_global_init(CURL_GLOBAL_SSL);
curl = curl_easy_init();
curl_easy_setopt(curl, CURLOPT_HEADER, 1);
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1);
curl_easy_setopt(curl, CURLOPT_URL, "https://myhost.com/api/login/");
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0);
// calculate request header
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "{\"username\":\"name\", \"password\":\"test\"}" );
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_callback); // set callback

curl_easy_perform(curl); // perform request
curl_easy_cleanup(curl); // cleanup request
return 0;

подробный вывод программы следующий

> * STATE: INIT => CONNECT handle 0x907ef0; line 1034 (connection #-5000)
> * Added connection 0. The cache now contains 1 members
> * STATE: CONNECT => WAITRESOLVE handle 0x907ef0; line 1071 (connection #0)
> * Could not resolve host: myhost.com
> * Closing connection 0
> * The cache now contains 0 members
> * Expire cleared
  • 1
    myhost.com в вашем хост-файле на компьютере с Ubuntu? Также убедитесь, что машина Windows может разрешить ваш хост за пределами curl (то есть с помощью ping)
  • 0
    ты пробовал другой URL?
Показать ещё 7 комментариев
Теги:
libcurl

1 ответ

0
Лучший ответ

поэтому я выясню решение. проблема была в curl_global_init (CURL_GLOBAL_SSL); вызов функции. когда я изменяю его на curl_global_init (CURL_GLOBAL_ALL); программа запускает работу, как ожидалось.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню