cocos2dx 3.3rc0 踩坑日记(二)------ HttpClient 的使用

前端之家收集整理的这篇文章主要介绍了cocos2dx 3.3rc0 踩坑日记(二)------ HttpClient 的使用前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

昨天写了Curl的简单使用,遇见了几个坑,今天用HttpClient写样例还是遇见了坑~

j_0012.gif

按照网上的资料写总是遇见问题。。。应该是版本不一样!!!下面我来说说HttpClient的使用方法

首先要引入头文件和命名空间

  1. #include"network/HttpClient.h"
  2. usingnamespacecocos2d::network;

但是这样还不行,编译的话会报错,无法解析的外部符号.......

出现这个需要添加network库,添加库的方式和以前有点不同。3.x有些附加项目在项目中被精简出去了,如libCocosStudio、libExtensions、libGUI等这些就需要自己手动添加

添加方式:在“解决方案资源管理器”中找到整个解决方案,右击,选择“添加”->“现有项目”。在弹出的对话框中找到“项目目录\cocos2d\cocos\network\proj.win32\libNetwork”点击确定

添加完之后,要对其进行引用,如下图:

wKioL1SAHaHBjOc_AAJhI1CIkrs838.jpg



进入“引用”,选择“添加新引用”,把libNetwork添加进去就好了。。。。才怪!!!!

还需要添加libcurl_imp.lib,因为HttpClient是对Curl的封装!

wKiom1SAHerhLX4VAAF_NAPwhtc403.jpg

把样例的代码改成如下代码

  1. voidHelloWorld::TouchEnded(Touch*pTouch,Event*pEvent)
  2. {
  3. log("HelloWorld::TouchEnded");
  4. //创建请求对象
  5. HttpRequest*request=newHttpRequest();
  6. //设置请求的url
  7. request->setUrl("www.baidu.com");
  8. //设置为Get模式
  9. request->setRequestType(HttpRequest::Type::GET);
  10. //设置响应的回调
  11. request->setResponseCallback(CC_CALLBACK_2(HelloWorld::onHttpRequestCompleted,this));
  12. request->setTag("test");
  13. //发送请求
  14. HttpClient::getInstance()->send(request);
  15. //释放请求
  16. request->release();
  17. }
  1. voidHelloWorld::onHttpRequestCompleted(HttpClient*sender,HttpResponse*response)
  2. {
  3. if(response->isSucceed())
  4. {
  5. mLabel->setString("Connectsuccessfully!");
  6. }
  7. else
  8. {
  9. charbuf[128];
  10. longres=response->getResponseCode();
  11. sprintf(buf,"code:%i",res);
  12. mLabel->setString(buf);
  13. }
  14. }

就可以实现curl样例的效果了!!!!

最后还有个不能漏的,必须在在退出的时候调用HttpClient::getInstance()->destroyInstance();否则在你关闭窗口的时候会报错!!!!

这篇是HttpClient初步使用进行的说明,应该还会有后续文章

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

猜你在找的Cocos2d-x相关文章