MFC下使用libcurl库的问题

九个太阳2023 2013-11-02 01:10:54
用libcurl库来远程登陆网站。
在控制台程序中运行是没有问题的,在MFC中使用就出现返回值错误的问题
控制台代码如下:

CURL *curl;
CURLcode code;

curl_global_init(CURL_GLOBAL_ALL);
curl = curl_easy_init();

//https 访问专用:start
#ifdef SKIP_PEER_VERIFICATION
//跳过服务器SSL验证,不使用CA证书
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
#endif

#ifdef SKIP_HOSTNAME_VERFICATION
//验证服务器端发送的证书,默认是 2(高),1(中),0(禁用)
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
#endif
//https 访问专用:end

std::string url = "https://www.xxx.com/user/login";
curl_easy_setopt(curl, CURLOPT_URL,url.c_str());
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, "nick=xxx&pwd=xxx");
code = curl_easy_perform(curl);
if(CURLE_OK == code)
{
printf("Login Successful!\n");
}
else
{
printf("Login Fail!\n");
}

MFC下的程序如下:

curl_global_init(CURL_GLOBAL_ALL);
m_A_curl = curl_easy_init();

//https 访问专用:start
#ifdef SKIP_PEER_VERIFICATION
//跳过服务器SSL验证,不使用CA证书
curl_easy_setopt(m_A_curl, CURLOPT_SSL_VERIFYPEER, 0L);
#endif

#ifdef SKIP_HOSTNAME_VERFICATION
//验证服务器端发送的证书,默认是 2(高),1(中),0(禁用)
curl_easy_setopt(curl, CURLOPT_SSL_VERIFYHOST, 0L);
#endif
//https 访问专用:end
curl_easy_setopt(m_A_curl,CURLOPT_URL,"https://www.xxx.com/user/login");
curl_easy_setopt(m_A_curl,CURLOPT_POSTFIELDS,"nick=xxx&pwd=xxx");

m_A_code = curl_easy_perform(m_A_curl);
if(CURLE_OK == m_A_code)
{
DisplayMsg(_T("login success!\n"));
}
else
{
DisplayMsg(_T("login Fail!\n"));
}

控制台程序运行正确,MFC程序,运行在执行之后,返回CURLE_WRITE_ERROR的错误码
求高手指点!
...全文
1664 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hankcs 2013-11-27
  • 打赏
  • 举报
回复
原来现在流行curl啊,亏我一直用CHttpClient
------------------------------------------------------AutoCSDN签名档------------------------------------------------------
码农场——码农播种代码、放牧思想的农场。
wxliangzyt 2013-11-27
  • 打赏
  • 举报
回复
看上去是libcurl自己的bug,可以实现以下write函数
fkeujjpdc 2013-11-15
  • 打赏
  • 举报
回复
你要自己定义write函数,应该默认的是stdin端口,MFC下面可能有问题。
九个太阳2023 2013-11-04
  • 打赏
  • 举报
回复
引用 2 楼 oyljerry 的回复:
看上去是libcurl自己的bug,可以实现以下write函数
引用 1 楼 oyljerry 的回复:
http://bbs.csdn.net/topics/220042039
请问版主,你解决了这个问题了吗?
oyljerry 2013-11-02
  • 打赏
  • 举报
回复
看上去是libcurl自己的bug,可以实现以下write函数
oyljerry 2013-11-02
  • 打赏
  • 举报
回复
http://bbs.csdn.net/topics/220042039

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧