您的位置:首页 > 移动开发 > Cocos引擎

在cocos2dx中通过php文件访问服务器数据库

2016-03-05 14:10 267 查看
这次分享一下如何在2dx中访问wamp中的数据库的内容,来实现一个登陆的功能,也就是在输入用户名的账号和密码之后,可以通过访问wamp服务器里面的数据库,查询是否存在该用户以及密码是否正确,反馈你是否登陆成功的一个小的demo。

接下来正文:

首先你要在2dx里面使用HttpClient这个类,用于对php文件发送接收请求,来访问数据库的内容。

代码如下:

voidHelloWorld::myhttp()
{

HttpRequest*request=newHttpRequest();//创建请求对象

stringstr1="localhost/testPhp/index.php?";

stringstr2=ntextEdit->getString();//获取username编辑框内容

stringstr3=ptextEdit->getString();//获取password编辑框内容

stringstruser="username=";

stringstrpsw="&password=";

str1=str1+struser+str2+strpsw+str3;

request->setUrl(str1.c_str());//设置请求的url,username和password已经包含在url中

request->setRequestType(HttpRequest::Type::GET);//设置为Get模式

//request->setUrl("https://httpbin.org/get");

//request->setRequestType(HttpRequest::Type::GET);

request->setResponseCallback(CC_CALLBACK_2(HelloWorld::onHttpRequestCompleted,this));

request->setTag("GET
test");

HttpClient::getInstance()->send(request);//发送请求

request->release();//释放请求

}

我的代码注释写得很清楚,总结的来说,就是先把url通过你的字符串把他拼接好,然后发送出去。然后等待响应。响应代码如下:

voidHelloWorld::onHttpRequestCompleted(HttpClient*sender,HttpResponse*response)
{

autoflag=(LabelTTF*)this->getChildByTag(3);

if(!response->isSucceed())//如果响应失败,输出错误信息

{

StringstrError;

strError.initWithFormat("Receive
Error! \n%s\n",response->getErrorBuffer());

flag->setString(strError.getCString());

return;

}

std::vector<char>*buffer=response->getResponseData();//接收响应信息

stringrecieveData;

for(unsignedinti=0;i<buffer->size();i++)

{

recieveData+=(*buffer)[i];

}

size_tbegin=recieveData.find("<body>")+6;//这里简单处理,获取<body>标签内数据,即是响应内容

size_tend=recieveData.find("</body>");

stringresult(recieveData,begin,end-begin);

flag->setString(result.c_str());
}

这里我使用了一个文字标签来显示反馈的内容,如果在服务器的数据库中你可以搜索到正确的用户名和密码,那么他会反馈一个正确信息,如果有错误则会返回一个错误的信息。这样一来我们就可以成功的获得反馈的信息了。

这一讲先说到这里,下一次详细说明php文件怎么写以及如何对应wamp服务器中的数据库。

谢谢大家!

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: