关于http的POST、GET、head、PUT 请求方法是请求一定的Web页面的程序或用于特定的URL。http可选用的请求方法有很多种,这里只列举下列几种: GET:客户端向服务器请求指定的页面信息,并返回实体主体。
head:只请求页面的首部。
POST:客户端请求服务器接受所指定的文档作为对所标识的URI的新的从属实体。
PUT:从客户端向服务器传送的数据取代指定的文档的内容。 其中get和post是我们游戏中最常用到的.
如何使用cocos2dx的httpClIEnt
下面直接进入我们的主题,如何使用cocos2dx的httpClIEnt,这个其实很简单.寥寥不多的几行代码就搞定了. 首先,加入头文件:
#include "extensions/cocos-ext.h"#include "network/httpClIEnt.h”using namespace cocos2d::network;
使用时的如下:
httpRequest* request1 = new httpRequest(); request1->setRequestType(httpRequest::Type::GET);//这里是GET请求 request1->setUrl("https://httpbin.org/get"); request1->setResponseCallback(CC_CALLBACK_2(HelloWorld::onhttpRequestCompleted,this)); httpClIEnt::getInstance()->send(request1); request1->release(); httpRequest* request2 = new httpRequest(); request2->setUrl("http://httpbin.org/post"); request2->setRequestType(httpRequest::Type::POST);//这里是POST请求 request2->setResponseCallback(CC_CALLBACK_2(HelloWorld::onhttpRequestCompleted,this)); // write the post data const char* postData = "visitor=cocos2d&TestSuite=Extensions Test/NetworkTest"; request2->setRequestData(postData,strlen(postData)); request2->setTag("POST test1"); cocos2d::network::httpClIEnt::getInstance()->send(request2); request2->release();
简单滴解析一下,上面用的服务端也是cocos引擎里面官方test中的地址,分别是:
https://httpbin.org/get
http://httpbin.org/post
本文是参考test中C++写的,test中也有lua版本的哦.
其中onhttpRequestCompleted是响应的函数.我这里是参考官方的test写的,只是把数据在log输出.没有进行其他的处理
编辑响应的函数onhttpRequestCompleted(),代码如下
voID HelloWorld::onhttpRequestCompleted(httpClIEnt*sender,httpResponse *response){ if (!response) { return; } // You can get original request type from: response->request->reqType if (0 != strlen(response->gethttpRequest()->getTag())) { log("%s completed",response->gethttpRequest()->getTag()); } long statusCode = response->getResponseCode(); char statusstring[64] = {}; sprintf(statusstring,"http Status Code: %ld,tag = %s",statusCode,response->gethttpRequest()->getTag());// _labelStatusCode->setString(statusstring); log("response code: %ld",statusCode); if (!response->isSucceed()) { log("response Failed"); log("error buffer: %s",response->getErrorBuffer()); return; } // dump data std::vector<char> *buffer = response->getResponseData(); printf("http Test,dump data: "); for (unsigned int i = 0; i < buffer->size(); i++) { printf("%c",(*buffer)[i]); } printf("\n");}
____________________________
相关资料推荐:
http://cn.cocos2d-x.org/article/index?type=cocos2d-x&url=/doc/cocos-docs-master/manual/framework/native/v3/httpclIEnt/zh.md cocos2dx官方开发者文档--如何使用httpClIEnt: http://www.2cto.com/kf/201404/295863.HTML cocos2d-x3.0 实现http请求GET、POST http://www.2cto.com/kf/201409/333393.HTMLCocos2d-x3.1 httpClIEnt封装与使用 http://blog.csdn.net/wangpeng047/article/details/19624529 httpClIEnt使用详解 http://changfakong.diandian.com/post/2012-02-13/15973956 http协议中POST、GET、head、PUT等请求方法以及一些常见错误 总结以上是内存溢出为你收集整理的cocos2dx之如何使用HttpClient进行网络通讯全部内容,希望文章能够帮你解决cocos2dx之如何使用HttpClient进行网络通讯所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)