Cocos2dx 为我们封装了在cocos2dx中http的网络框架,其文件在cocos2dx引擎包的extensions\network文件下的 HttpClient、HttpRequest 、HttpResponse。
使用CCHttprequest联网有两种方法get和post。get和post都可以从服务器获取数据,这两种联网的方法有所不同。下面简单的区分一下
1.get提交的时候数据放到URL后面,post放在HTTP协议消息体中。
2.get数据量大小有限制,2KB,post理论上没限制。
3.get的安全性比post差。
但是真正的底层,用的还是cURL库。。。
CURL是cocos2d-x推荐使用的联网方法,这种联网的方法可以跨平台
1.首先创建一个类,继承自cocos2d-x中的任何一个类都可以(有共同父类CCObject),并实现一个SEL_CallFuncND类型成员函数,用来做收到数据后的回调函数,函数原型为void fun(CCNode*, void*)。
2.当我们需要一次http交互的时候,我们需要new 一个CCHttpRequest对象,并设置url和请求方式(get还是post,本文只说一下get的原理,post区别不大,可以自己看),并将上面说函数设置为收到数据后的回调函数。
3.使用CCHttpClient::getInstance()单例对象,将前一步骤的CCHttpRequest对象作为参数,调用send()方法。
4.在回调函数中,将第二个参数转换成CCHttpResponse *类型,就可以通过CCHttpResponse类的方法来获取返回状态和数据等能容了。
具体例子testCpp有详细的代码
参考;
http://blog.csdn.net/zhy_cheng/article/details/9124275
http://blog.csdn.net/duotianshi86/article/details/10216383