一 cocos2dx 之 简单的客户端与服务端的http通信
来源:互联网 发布:网络犯罪的例子 编辑:程序博客网 时间:2024/06/05 15:59
1 服务端设置。 这里我用的iis,阿里云的服务器。首先,用远程桌面连接阿里云的服务器,然后找到iis管理器,添加角色,由于只是测试而已,就直接用网站服务器就ok。
根据提示安装web所需要的环境。然后,就可以在自己的服务器上建立一个站点,建站点的时候注意,如果没有自己的域名,主机名就不用写了,我们只是以端口号来区分我们的站点,最后点击网站绑定到计算机上的文件夹,在文件夹内创建一个html,或者php,甚至是txt的文件,文件里随便写些内容就好了。然后再网站的属性里,添加默认文档为创建的文件名。这样,一个网站就建好了,当客户端链接这个站点的时候,我们会把网站下的文件里的内容返回给客户端。
2 客户端就比较简单了。直接 贴代码:
bool HelloWorld::init()
{
//////////////////////////////
// 1. super init first
if ( !Layer::init() )
{
returnfalse;
}
Node *n=CSLoader::createNode("MainScene.csb");
addChild(n);
ui::Button *bt=(ui::Button *)seekNodeByName(n,"Button_1");
bt->addClickEventListener(CC_CALLBACK_0(HelloWorld::httprequst,this,bt));
returntrue;
}
void HelloWorld::httprequst(cocos2d::CCObject *sender)
{
HttpRequest* request =new HttpRequest();//创建request对象,这里new出来的对象不能使用autorelease(),原因后述
request->setUrl("你的网站地址");//设置url
request->setRequestType(HttpRequest::Type::GET);//设置请求方式
request->setResponseCallback(this,callfuncND_selector(::HelloWorld::onHttpRequestCompleted));//这是回调对象和回调函数
request->setTag("GET test1");//设置用户标识,可以通过response获取
HttpClient::getInstance()->send(request);//使用CCHttpClient共享实例来发送request
request->release();//调用release()
}
void HelloWorld::onHttpRequestCompleted(cocos2d::CCNode *sender,void *data)
{
HttpResponse *response = (HttpResponse*)data;
if (!response)
{
return;
}
// 获取对应request的字符串标识
if (0 !=strlen(response->getHttpRequest()->getTag()))
{
CCLog("%s completed", response->getHttpRequest()->getTag());
}
//获取返回代码,比如200、404等
int statusCode = response->getResponseCode();
char statusString[64] = {};
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());//可以调用getErrorBuffer()来获取错误原因
return;
}
// dump data
std::vector<char> *buffer = response->getResponseData();//用来获取接收到的数据
printf("Http Test, dump data: ");
for (unsignedint i = 0; i < buffer->size(); i++)
{
printf("%c", (*buffer)[i]);
}
printf("\n");
}
这样就可以收到服务端返回的信息,也就是网站下的文本的内容。发个截图,是我自己返回的内容:
- 一 cocos2dx 之 简单的客户端与服务端的http通信
- 简单的服务端与客户端通信代码
- 简单的客户端,服务端通信
- 使用简单的ServiceSockt实现服务端与客户端的通信
- 简单的Socket通信客户端和服务端
- 客户端和服务端通信的简单小案列
- 客户端与服务端的Socket通信
- socket客户端与服务端的通信
- sokect服务端与客户端的通信
- Socket编程基础之服务端与客户端简单通信
- Android 客户端与ssh 服务端通信 以对象的形式相互传 (一) 客户端向服务端发送对象
- IOS-18-网络通信之Socket通信中服务端与客户端的实现
- 利用Tcp和socket实现的客户端与服务端的简单通信
- Java中利用socket实现简单的服务端与客户端的通信(入门级)
- Java中利用socket实现简单的服务端与客户端的通信(基础级)
- NIO实现的简单的客户端与服务端通信(非阻塞)
- C# client 与java netty 服务端的简单通信,客户端采用Unity。
- C# client 与java netty 服务端的简单通信,客户端采用Unity。
- 取消异常关机的磁盘检查
- 算法和数据结构
- java多线程
- sql注入定义、原理、攻击和防护
- 销售部OA流程
- 一 cocos2dx 之 简单的客户端与服务端的http通信
- 无法创建磁盘数据库报错ora-01031 insufficient privileges
- html
- js 实现飘浮
- Android中获取应用程序(包)的信息-----PackageManager的使用(一)
- OA办公流程
- 联科手游技术支持
- 原生js实现ajax和将数组以列表形式显示出来
- 淘宝技术部