正如标题中所解释的,我尝试使用 libcurl C API 提交简单的 http 查询。
我使用 Windows 作为操作系统,C++ 作为语言,Visual Studio 2008 作为 IDE。
我的代码非常简单:
我初始化卷曲:CURLcode init = curl_global_init(CURL_GLOBAL_ALL);
我初始化我的句柄:CURL* handle = curl_easy_init();
我设置了网址:CRULcode set_url = curl_easy_setopt(handle, CURLOPT_URL, "http://www.example.com")
我提交我的请求:CURLcode submit = curl_easy_perform(handle);
结果,init
and set_url
返回码为 0 (CURLE_OK
),提交的返回码是2(CURLE_URL_MALFORMAT
).
当我调试时,我意识到我的 URL 已损坏,而不是http://www.example.com http://www.example.com它成为了:xj:
在释放模式和0|:
在调试模式下。
我一进去就发生了curl_easy_setopt
URL 字符串肯定已损坏。
我的设置肯定有一个错误,所以这里是我的设置摘要(在调试模式下)
- 在共享 DLL 中使用 MFC
- 使用多字节字符集
- 预处理器包括 CURL_STATICLIB
- 多线程调试 DLL /MDd
- 使用 vc6curl.dsw 项目链接 libcurld.lib(版本 7.21.3)编译
- 还链接到 ws2_32.lib wldap32.lib
“链接 libcurl.lib(版本 7.21.3)编译使用 vc6curl.dsw 项目"
这就是问题。
静态库必须使用相同的编译器和相同的运行时库(/MDd)构建。
您可以使用 DLL 版本的 libcurl 来避免这种情况。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)