领悟旧事

Learned Helplessness
分类新闻>>生活领悟>>
XE10 C++Builder通过TIdHTTP进行网页数据交互
来源:http://www.xx0594.com/
时间:2023-9-25
作者:  浏览人数:3368
在用户进行注册或登录时,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
%>

 

关闭窗口
 访问量:519304
任何第三方若要引用、转摘本站信息,均需征得本站书面同意,否则视为侵权。本站信息为个人观点,若因引用本站信息而产生的任何情况,均与本站无关。Email:linmutou@163.com
闽ICP备14017840号-2