c++ - libcurl 在 ubuntu 虚拟机上完美运行,但无法解析 Windows 上的主机

标签 c++ c ubuntu libcurl

在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

最佳答案

所以我找到了解决方案。 问题出在curl_global_init(CURL_GLOBAL_SSL);函数调用。 当我将其更改为curl_global_init(CURL_GLOBAL_ALL);程序按预期开始工作。

关于c++ - libcurl 在 ubuntu 虚拟机上完美运行,但无法解析 Windows 上的主机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28818955/

相关文章:

c++ - Qt 5.0.2 和 OpenGL 3+ 渲染问题

c - `a++ & f(a)` 是未定义的还是未指定的?

c - 是否可以将多个值从外部文件返回到 Dymola?

javascript - 如何检测 Firefox 4.6 ubuntu 上安装的扩展

c++ - 我序列化了一个C++对象,如何在不知道它是什么类型的情况下为其分配内存?

c++ - 从 C++ 缓冲区到 python::boost::list

c++ - 将 char* 转换为 std::string

c - MSXML 内存处理中的问题

Python pip install(使用代理)无法解析 VPN 后面的 VM 中的服务器

c++ - 在ubuntu上使用waf链接boost