昨天写了Curl的简单使用,遇见了几个坑,今天用HttpClient写样例还是遇见了坑~
按照网上的资料写总是遇见问题。。。应该是版本不一样!!!下面我来说说HttpClient的使用方法。
首先要引入头文件和命名空间
#include"network/HttpClient.h" usingnamespacecocos2d::network;
但是这样还不行,编译的话会报错,无法解析的外部符号.......
出现这个需要添加network库,添加库的方式和以前有点不同。3.x有些附加项目在项目中被精简出去了,如libCocosStudio、libExtensions、libGUI等这些就需要自己手动添加。
添加方式:在“解决方案资源管理器”中找到整个解决方案,右击,选择“添加”->“现有项目”。在弹出的对话框中找到“项目目录\cocos2d\cocos\network\proj.win32\libNetwork”点击确定
添加完之后,要对其进行引用,如下图:
进入“引用”,选择“添加新引用”,把libNetwork添加进去就好了。。。。才怪!!!!
还需要添加libcurl_imp.lib,因为HttpClient是对Curl的封装!
voidHelloWorld::TouchEnded(Touch*pTouch,Event*pEvent) { log("HelloWorld::TouchEnded"); //创建请求对象 HttpRequest*request=newHttpRequest(); //设置请求的url request->setUrl("www.baidu.com"); //设置为Get模式 request->setRequestType(HttpRequest::Type::GET); //设置响应的回调 request->setResponseCallback(CC_CALLBACK_2(HelloWorld::onHttpRequestCompleted,this)); request->setTag("test"); //发送请求 HttpClient::getInstance()->send(request); //释放请求 request->release(); }
voidHelloWorld::onHttpRequestCompleted(HttpClient*sender,HttpResponse*response) { if(response->isSucceed()) { mLabel->setString("Connectsuccessfully!"); } else { charbuf[128]; longres=response->getResponseCode(); sprintf(buf,"code:%i",res); mLabel->setString(buf); } }
就可以实现curl样例的效果了!!!!
最后还有个不能漏的,必须在在退出的时候调用HttpClient::getInstance()->destroyInstance();否则在你关闭窗口的时候会报错!!!!
这篇是HttpClient初步使用进行的说明,应该还会有后续文章!
如有不足之处,请大家指出,一起交流成长!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。