我是使用Cococs2d-X
进行游戏开发的新手。我试图找到一些在我的游戏中使用HttpClient
库的例子。任何人都可以给我一个例子吗?Http GET/POST请求在Coccos2d-X中
3
A
回答
1
这是击中的getPost方法
cocos2d::extension::CCHttpRequest *request=new cocos2d::extension::CCHttpRequest();
request->setUrl("your url");
request->setRequestType(cocos2d::extension::CCHttpRequest::kHttpPost);
request->setResponseCallback(this, httpresponse_selector(LoadingScene::yourCallBackMethod));
CCString *data = CCString::createWithFormat ("%s",yourData);
request->setRequestData(data->getCString(), data->length());
extension::CCHttpClient::getInstance()->send(request);
一个网址定义yourCallBackMethod这样的基本代码...
yourCallBackMethod(cocos2d::extension::CCHttpClient *sender,cocos2d::extension::CCHttpResponse *response){
std::vector<char> *buffer = response->getResponseData();
}
+0
错误“使用未声明的标识符'扩展'” – redux
0
这个代码是基于cocos2d的的-X
测试//测试1
CCHttpRequest* request = new CCHttpRequest();
request->setUrl("http://just-make-this-request-failed.com");
request->setRequestType(CCHttpRequest::kHttpGet);
request->setResponseCallback(this, httpresponse_selector(HttpClientTest::onHttpRequestCompleted));
request->setTag("GET test1");
CCHttpClient::getInstance()->send(request);
request->release();
/*******************************************************************************/
void HttpClientTest::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()
if (!response->isSucceed())
{
CCLog("response failed");
CCLog("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");
}
+0
错误“使用未声明的标识符CCHttpClient”。建议我更改为cocos2d :: network :: HttpClient,其错误为“在嵌套名称说明符中命名的不完整类型cocos2d :: network :: HttpClient”。 – redux
9
对于科科斯-2DX 3.3,你需要包含以下标题和使用的命名空间声明:
#include "cocos2d.h"
#include "network/HttpClient.h"
USING_NS_CC;
using namespace network;
然后你就可以直接创建的HttpRequest:
HttpRequest* request = new HttpRequest();
request->setRequestType(HttpRequest::Type::GET);
request->setUrl("http://YOUR_URL");
request->setResponseCallback(CC_CALLBACK_2(HttpClientTest::onHttpRequestCompleted, this));
request->setTag("Get test");
HttpClient::getInstance()->send(request);
request->release();
回调函数可以处理的响应:
void HttpClientTest::onHttpRequestCompleted(HttpClient *sender, HttpResponse *response) {
if (response && response->getResponseCode() == 200 && response->getResponseData()) {
vector<char> *data = response->getResponseData();
string ret(&(data->front()), data->size());
CCLOG("%s", ("Response message: " + ret).c_str());
}
else {
CCLOG("%s", ("Error " + to_string(response->getResponseCode()) + " in request").c_str()); //error
}
}
相关问题
- 1. PHP - $请求 - >的getPost( 'FIRST_NAME')
- 2. http请求的HTTP请求
- 3. 在HTTP请求中修改HTTP请求行
- 4. 在AsyncTask中的HTTP请求
- 5. Jetty在http请求中返回400请求绝对URL请求
- 6. http请求在android
- 7. 在Xamarin.Forms HTTP请求
- 8. HTTP请求没有请求在Elm 0.18
- 9. C#HTTP请求
- 10. HTTP GET请求()
- 11. Arduino http请求
- 12. HTTP请求
- 13. C++ HTTP请求
- 14. Android HTTP请求
- 15. InputStream Http请求
- 16. 对Http请求
- 17. Pushbullet HTTP请求
- 18. Http Put请求
- 19. Airplay http请求
- 20. Angular2,HTTP请求
- 21. 从http请求
- 22. Http请求
- 23. HTTP POST请求
- 24. DNS HTTP请求
- 25. swift HTTP请求
- 26. UTL_HTTP http请求
- 27. HTTP DELETE请求
- 28. HTTP POST请求
- 29. php http请求
- 30. AbstractTransactionalJUnit4SpringContextTests HTTP请求
是否真的很难检查其网站上的cocos2d-x文档? http://www.cocos2d-x.org/wiki/How_to_use_CCHttpClient – Morion
当网站上的代码无法编译,而且您不知道如何修复时,很难。 – redux