在用户进行注册或登录时,APP要与服务器进行交互,当APP提交数据时,要得到结果,并对结果进行判断。下面代码就是实现这个功能。
TStringStream *ResponseStream=new TStringStream("",65001);
TStringList *para=new TStringList();
UnicodeString url="http://**.com/**/*.asp";//定义网址
para->Clear();//下面设置参数,这些参数是.asp网页文件所定义的
para->Add("username="+LoginUserName_Edit->Text);//提交用户名
para->Add("password="+LoginPasswords_Edit->Text);//提交密码
para->Add("email="+LoginEmail_Edit->Text);//提交Email
if(NewUser_Switch->IsChecked)
para->Add("action=addnew");
else
para->Add("action=login");
//创建TIdHTTP进行数据提交。
TIdHTTP *IdHTTPX= new TIdHTTP(this);
IdHTTPX->Request->ContentType = "application/x-www-form-urlencoded;Charset=UTF-8";
try{
IdHTTPX->Post(url,para,ResponseStream);
}catch(Exception &ee){
sql=U"错误:"+ee.Message;
ToastLog(sql,LoginOrNewUser_Text);
delete IdHTTPX;
IdHTTPX=NULL;
}
delete IdHTTPX;
IdHTTPX=NULL;
delete para;
AnsiString s=ResponseStream->DataString;//返回结果,结果在asp文件是定义。
if(s=="SameUser_Error"){
ToastLog(U"错误:用户名已经被占用!",LoginOrNewUser_Rectangle);
return;
}
if(s=="UsernamePasswords_Error"){
ToastLog(U"错误:用户名或密码错误!",LoginPasswords_Edit);
return;
}
//-------------------------------------------------------
//下面是简单的asp文件内容
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<%Response.Charset="utf-8"%>
<%
dim sql
dim rs
username=request("UserName")
password=md5(request("password")) 'md5(replace(trim(Request("password")),"'",""))
if username="" then
response.Write("UserNameError")
response.End()
end if
if password="" then
response.Write("PasswordError")
response.End()
end if
if action="" then
response.Write("DoError")
response.End()
end if
if action="addnew" then '新增
if not(rs.bof and rs.eof ) then '不能同名
response.Write("SameUser_Error")
else
。。。。。。。很多代码
rs.Update
response.Write(n&"IDOK") '返回用户ID
end if
end if
if action="login" then
sql="select * from UserLists where passwords='"&password&"' and username='"&username&"'"
rs.open sql,conn,1,1
if not(rs.bof and rs.eof ) then
response.Write(rs("userID")&"IDOK")
else
response.Write("UsernamePasswords_Error")
end if
end if
rs.close
conn.close
set rs=nothing
set conn=nothing
%>