cocos2dx CCHttpclient与java后台通信
2014-04-13 14:54
375 查看
一,本次测试的后台是用java的springmvc框架写的。
二,CChttpClient在下载的cocos2dx的包中有现成的例子。
三,cocos2dx带的cchttpclient例子在Testcpp/ExtentionsTest/NetworkTest下面。
我写的代码如下:
HttpUtils.h类,这个类名是自己定义的。
#ifndef __HTTP_UTILS__
#define __HTTP_UTILS__
#include "cocos2d.h"
#include "cocos-ext.h"
#include <string>
using namespace cocos2d;
using namespace std;
using namespace cocos2d::extension;
class HttpUtils :public CCNode{
public:
HttpUtils();
~HttpUtils();
void sendData(string* data);
void onHttpRequestCompleted(CCHttpClient *sender, CCHttpResponse *response);
string getData();
public:
HttpUtil.h的实现类,HttpUtils.cpp
#include "HttpUtils.h"
HttpUtils::HttpUtils(){
}
二,CChttpClient在下载的cocos2dx的包中有现成的例子。
三,cocos2dx带的cchttpclient例子在Testcpp/ExtentionsTest/NetworkTest下面。
我写的代码如下:
HttpUtils.h类,这个类名是自己定义的。
#ifndef __HTTP_UTILS__
#define __HTTP_UTILS__
#include "cocos2d.h"
#include "cocos-ext.h"
#include <string>
using namespace cocos2d;
using namespace std;
using namespace cocos2d::extension;
class HttpUtils :public CCNode{
public:
HttpUtils();
~HttpUtils();
void sendData(string* data);
void onHttpRequestCompleted(CCHttpClient *sender, CCHttpResponse *response);
string getData();
public:
//后台返回的字符串,,这里必须声明成static类弄的,要不然在回调函数结束了,这个值就不存在了 static string m_data; }; #endif // !__HTTP_UTILS__
HttpUtil.h的实现类,HttpUtils.cpp
#include "HttpUtils.h"
HttpUtils::HttpUtils(){
}
//初始化数据 string HttpUtils::m_data = ""; HttpUtils::~HttpUtils(){ } string HttpUtils::getData(){ return m_data; }
//向服务器发送数据 void HttpUtils::sendData(string* data){ CCHttpRequest* request = new CCHttpRequest(); request->setUrl("http://localhost:8080/GameTechnology/user/cocos2dTest"); request->setRequestType(CCHttpRequest::kHttpPost); request->setRequestData(data->c_str(),data->length()); request->setResponseCallback(this, httpresponse_selector(HttpUtils::onHttpRequestCompleted)); request->setTag("GET test1"); CCHttpClient::getInstance()->send(request); request->release(); }
//http请求的回周函数,用于接收服务器传来的数据 void HttpUtils::onHttpRequestCompleted(CCHttpClient *sender, CCHttpResponse *response){ if (!response) { return; } // You can get original request type from: response->request->reqType if (0 != strlen(response->getHttpRequest()->getTag())) { CCLog("%s completed", response->getHttpRequest()->getTag()); } int statusCode = response->getResponseCode(); char statusString[1024] = {}; sprintf(statusString, "HTTP Status Code: %d, tag = %s", statusCode, response->getHttpRequest()->getTag()); CCLog("response code: %d", statusCode); if (!response->isSucceed()) { CCLog("response failed"); CCLog("error buffer: %s", response->getErrorBuffer()); return; } std::vector<char> *buffer = response->getResponseData(); this->m_data = string(buffer->begin(),buffer->end()); CCLog("sss:%s",m_data.c_str()); }
相关文章推荐
- Flex中HTTPService与java后台通信
- flex基础篇一,基于httpservice通信+java后台的项目创建
- lua教程八----不用CCHttpClient而转用quick-cocos2d-x或cocos2dx-LuaProxy的Lua框架实现Lua-Http网络交互!
- 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)
- java后台通过HttpClient调用第三方接口
- 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)
- Java网络通信之HttpClient
- 在JAVA中用HTTPClient的GET方式通信步骤
- 【COCOS2DX-LUA 脚本开发之八】不用CCHttpClient而转用quick-cocos2d-x或cocos2dx-LuaProxy的Lua框架实现Lua-Http网络交互!
- 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)
- Java 服务器端与服务器端的通信之httpclient
- Java网络通信之HttpClient
- 【COCOS2DX-LUA 脚本开发之八】不用CCHttpClient而转用quick-cocos2d-x或cocos2dx-LuaProxy的Lua框架实现Lua-Http网络交互!
- Java网络通信之HttpClient
- 【C/S通信交互之Http篇】Cocos2dx(Client)使用Curl与Jetty(Server)实现手机网游Http通信框架(内含解决curl.h头文件找不到问题)
- Java 服务端通信之httpClient
- httpclient发送post/get请求,Java后台怎么接受
- 【COCOS2DX-LUA 脚本开发之八】不用CCHttpClient而转用quick-cocos2d-x或cocos2dx-LuaProxy的Lua框架实现Lua-Http网络交互!
- Flex Httpservice和java后台通信传值出现中文乱码
- Java HttpClient解析https时报错Could not generate DH keypair