cocos2dx 3.3rc0 踩坑日记(一)------ 弱联网 Curl

cocos2dx 3.3rc0 踩坑日记(一)------ 弱联网 Curl,第1张

概述    这两天看了视频学习了下弱联网技术,用的是Curl,具体使用方法我就多说了,可以参考官方样例和下面的文章,解释的很清楚。     【Curl (libcurl) 开发 之一】Cocos2dx之libcurl(curl_easy)的编程教程(帮助手册)!      CURL使用2     我要说的我又踩到一个坑。。。为什么是又呢。。。天生就是来踩坑的。。。     先说下使用之前需要加入cur

这两天看了视频学习了下弱联网技术,用的是Curl,具体使用方法我就多说了,可以参考官方样例和下面的文章,解释的很清楚。

【Curl (libcurl) 开发 之一】Cocos2dx之libcurl(curl_easy)的编程教程(帮助手册)!

CURL使用2

我要说的我又踩到一个坑。。。为什么是又呢。。。

650) this.width=650;" src="http://img.jb51.cc/vcimg/static/loading.png" alt="t_0012.gif" src="http://img.baidu.com/hi/tsj/t_0012.gif">

天生就是来踩坑的。。。

先说下使用之前需要加入curl.h的路径$(EngineRoot)external\curl\include\win32和链接库libcurl_imp.lib

如图所示:

650) this.width=650;" src="http://img.jb51.cc/vcimg/static/loading.png" title="QQ截图20141203182056.png" alt="wKiom1R-5QnwEeAhAAHezs4REyg640.jpg" src="http://s3.51cto.com/wyfs02/M02/54/52/wKiom1R-5QnwEeAhAAHezs4REyg640.jpg">

650) this.width=650;" src="http://img.jb51.cc/vcimg/static/loading.png" title="QQ截图20141203182139.png" alt="wKiom1R-5QmBZKFGAAOhW6juL-w413.jpg" src="http://s3.51cto.com/wyfs02/M01/54/52/wKiom1R-5QmBZKFGAAOhW6juL-w413.jpg">

下面来说下我踩到坑,有两个!!!!

第一个是我修改样例curl_easy_setopt(curl,CURLOPT_URL,"www.baIDu.com"); 居然请求失败!失败!。。。。我就蛋疼了。。。和视频里的一样为什么失败呢。。。

后来改成curl_easy_setopt(curl,"baIDu.com");就可以请求成功了。。。不要问为什么,我也不知道。。。我去看了cocos2dx以前版本是这样写的。。。可能还有朋友看见看见类似的代码curl_easy_setopt(curl,"http//:baIDu.com");两种写法都可以,http//:可有可无!

第二个坑就是回调函数!!!!!!!

回调函数如下:

size_tHelloWorld::write_data(voID*buffer,size_tsize,size_tnmemb,voID*userp){	log("%s",(char*)buffer);	returnsize;}

curl_easy_setopt(curl,CURLOPT_WRITEFUNCTION,HelloWorld::write_data);设置好回调函数就会在执行curl_easy_perform(curl)自动调用了。

又是和视频里一样。。。还是请求失败,返回了一个数23!!!去查了资料看看表示什么意思。

CURLE_WRITE_ERROR (23) � 在向本地文件写入所收到的数据时发生错误,或由写入回调 (write callback) 向 libcurl 返回了一个错误。

原来必须要回调函数返回它所得到数据的大小。如果返回的数据大小与传递给它数据大小不一致,libcurl将会终止 *** 作,并返回一个错误代码。

size_tHelloWorld::write_data(voID*buffer,(char*)buffer);	returnsize*nmemb;//这里一定要返回实际返回的字节数}

代码改成size * nmemb就可以了,nmemb表示模块的大小,一个表示模块数!!!

视频坑啊。。。纠结死我了,还好最终解决了!

Cocos2dxCurl进行封装,提供了CChttpClIEnt类,推荐大家都使用CChttpClIEnt类,CChttpClIEnt是异步的。而Curl写异步还需要自己写。。。我们还是不要重复造轮子了!

就写这么多,期待下篇文章!

如有不足之处,请大家指出,一起交流成长!

总结

以上是内存溢出为你收集整理的cocos2dx 3.3rc0 踩坑日记(一)------ 弱联网 Curl全部内容,希望文章能够帮你解决cocos2dx 3.3rc0 踩坑日记(一)------ 弱联网 Curl所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1017901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存