Cocos2dx之http网络请求
来源:互联网 发布:java教学视频百度云 编辑:程序博客网 时间:2024/05/16 12:01
先包含进extensions目录
CCHttpClient就是要用的类
客户端代码:
先引入头文件和命名空间
#include "cocos2d.h"#include "cocos-ext.h"USING_NS_CC;USING_NS_CC_EXT;
然后直接上点击发送按钮的回调函数请求网络
//点击按钮的回调函数void TestLayer::btncallback(CCObject* pSender){bool requestType_is_get = false;//采用get方式或者post方式if (requestType_is_get){CCHttpRequest* request = new CCHttpRequest();//创建请求对象string str1 = "http://127.0.0.1:8080/b_springmvc_cms/cocos2dx.do";string str2 = p_User_EditBox->getText();string str3 = p_Psw_EditBox->getText();string struser = "?username=";//注意在get方式请求后面加个?问号,再加上请求参数string strpsw = "&password=";str1 = str1 + struser + str2 + strpsw + str3;CCLOG("GetType data : %s", str1.c_str());request->setUrl(str1.c_str());//设置请求的url,username和password已经包含在url中request->setRequestType(CCHttpRequest::kHttpGet);//设置为Get模式request->setResponseCallback(this, httpresponse_selector(TestLayer::onHttpRequestCompleted));//设置响应的回调request->setTag("getTag");//可以在回调函数中取到这个tag字符串CCHttpClient::getInstance()->send(request);//发送请求request->release();//释放请求}else{CCHttpRequest* request = new CCHttpRequest();//创建请求对象string str1 = "http://127.0.0.1:8080/b_springmvc_cms/cocos2dx.do";string str2 = p_User_EditBox->getText();string str3 = p_Psw_EditBox->getText();string struser = "username=";string strpsw = "&password=";str2 = struser + str2 + strpsw + str3;request->setUrl(str1.c_str());//设置请求的url,只是请求页面的url,并不包含username和passwordrequest->setRequestType(CCHttpRequest::kHttpPost);//设置为Post模式request->setResponseCallback(this, httpresponse_selector(TestLayer::onHttpRequestCompleted));//设置响应的回调const char* postData = str2.c_str();CCLOG("PostType data : %s", postData);request->setRequestData(postData, strlen(postData));//设置请求数据,也就是username和passwordrequest->setTag("postTag");//可以在回调函数中取到这个tag字符串CCHttpClient::getInstance()->send(request);//发送请求request->release();//释放请求}}
接着就是响应的回调函数
void TestLayer::onHttpRequestCompleted(CCHttpClient* client, CCHttpResponse* response){if (!response->isSucceed())//如果响应失败,输出错误信息{CCString strError;strError.initWithFormat("Receive Error! \n%s\n", response->getErrorBuffer());m_labelStatusCode->setString(strError.getCString());return;}std::vector<char> *buffer = response->getResponseData();//接收响应信息string recieveData;for (unsigned int i = 0; i < buffer->size(); i++){recieveData += (*buffer)[i];}const char* tag = response->getHttpRequest()->getTag();CCLOG("Receive data : %s , tag=%s", recieveData.c_str(), tag);m_labelStatusCode->setString(recieveData.c_str());}
服务端代码:
服务端用的是tomcat,控制层用springmvc框架搭建的,这里指定了用只接受POST方式的请求
@Controllerpublic class Cocos2dxAction {@RequestMapping(value = "/cocos2dx.do",method=RequestMethod.POST)@ResponseBodypublic String cocos2dx(@RequestParam(value = "username") String username,@RequestParam(value = "password") String password) {System.out.println("recive success , username=" + username+ " , password=" + password);String string = "server message !";return string;}}
效果:
请求前:
请求后:
eclipse控制台输出的信息:
源码地址:http://download.csdn.net/detail/jackyvincefu/6713471
0 0
- Cocos2dx之http网络请求
- cocos2dx lua http请求获取网络数据:
- cocos2dx lua http请求获取网络数据:
- cocos2dx之Http网络编程(一)——网络请求的发送和接收
- cocos2dx之Http网络编程(一)——网络请求的发送和接收
- cocos2dx之Http网络编程(一)——网络请求的发送和接收
- [cocos2dx]网络请求httpClient
- android之网络访问http请求总结
- 网络请求服务器之HTTP状态码
- 网络请求库之android-async-http
- 网络通信之HTTP请求小结
- 网络请求之HTTP和HTTPS
- cocos2dx之HTTP开发
- Cocos2dx之Http
- Cocos2dx 链接HTTP网络服务器
- http网络请求
- android 网络请求 http
- HTTP网络请求
- 贪心算法 田忌赛马
- 安卓环境搭建
- Caused by: org.xml.sax.SAXParseException: cvc-elt.1: Cannot find the declaration of element 'beans'.
- std::string
- Linux 有趣命令
- Cocos2dx之http网络请求
- VxWorks下使用帮助help出错
- Scrapy webkit 获取js代码执行结果后再抓取
- SVN的几个菜单
- 链表常见操作-嵌入式C语言
- ExtJs4 笔记(4) Ext.Ajax 对ajax的支持
- 【C/C++】堆和栈的区别
- 历届博客之星获奖博客分享
- 数组