1.session
session的作用:服务器要知道当前发请求给自己的是谁,
为了做这种区分,服务器就给每个客户端分配不同的身份标识
session存在:
内存
cookie本身
缓存中,比如说redis
数据库中
session机制:是一种服务器端的机制,客户端对服务器请求时,
服务器会检查请求中是否包含一个session标识(sessionid)
2.token
token的意思就是令牌:
1.客户端使用用户名和密码请求登录
2.登录成功之后,点击投标
3.生成一个token信息
4.后面输入金额,进行投标的时候,需要拿着这个金额+token一起来服务器认证
5.认证成功了,就投标成功
3.代码示例
Action()
{
//放在事务之前,为了保证时间更正确
web_reg_save_param_ex(
"ParamName=success",
"LB=<p class=\"success\">",
"RB=</p>",
SEARCH_FILTERS,
"Scope=ALL",
LAST);
lr_start_transaction("登陆开始");
web_submit_data("登陆",
"Action=http://120.78.xxx.xx:8765/Frontend/Index/login",
"Method=POST",
"EncType=application/x-www-form-urlencoded;charset=UTF-8",
"RecContentType=application/json",
"TargetFrame=",
"Referer=http://120.78.xxx.xx:8765/Index/login.html",
"Mode=HTTP",
ITEMDATA,
"Name=phone", "Value=1391xx86542", ENDITEM,
"Name=password", "Value=520xxtest", ENDITEM,
"Name=vcode", "Value=", ENDITEM,
"Name=remember_me", "Value=1", ENDITEM,
"Name=notify_url", "Value=", ENDITEM,
LAST);
lr_end_transaction("登陆结束", LR_AUTO);
lr_error_message("登陆成功:%s",lr_eval_string("{success}"));
//比较2个字符串是否一致,一致则表明匹对成功,获取的信息一致
if(strcmp(lr_eval_string("{success}"),"登录成功")==0){
lr_end_transaction("登录成功", LR_PASS);
}else{
lr_end_transaction("登录失败", LR_FAIL);
}
//ID关联
web_reg_save_param_ex(
"ParamName=ID",
"LB=href=\"/loan/loan_detail/Id/",
"RB=.html",
"Ordinal=1", //捕获到多个ID,取第几个值
SEARCH_FILTERS,
"Scope=ALL",
LAST);
web_url("首页",
"URL=http://120.78.xxx.xx:8765/Index/index",
"TargetFrame=",
"Resource=0",
"Referer=",
"Mode=HTML",
LAST);
web_reg_save_param_ex(
"ParamName=token",
"LB=data-token=\"",
"RB==\"",
"Ordinal=1",
SEARCH_FILTERS,
"Scope=ALL",
LAST);
web_url("ID",
"URL=http://120.78.xxx.xx:8765/loan/loan_detail/Id/{ID}.html",
"TargetFrame=",
"Resource=1",
"Referer=",
"Mode=HTML",
LAST);
if(atoi(lr_eval_string("{ID}"))>=1){
lr_end_transaction("ID获取成功",LR_PASS); //成功
lr_output_message("ID获取成功,值为:%s",lr_eval_string("{username}"));
}else{
lr_end_transaction("ID获取成功",LR_FAIL); //失败
}
lr_error_message("ID获取成功:%s",lr_eval_string("{ID}")); //注意输出语句要放在参数显示的后面,不然会获取不到参数值
lr_start_transaction("投标开始");
web_submit_data("投标",
"Action=http://120.78.xxx.xx:8765/Invest/invest",
"Method=POST",
"EncType=application/x-www-form-urlencoded; charset=UTF-8",
"RecContentType=application/json",
"TargetFrame=",
"Referer=",
"Mode=HTTP",
ITEMDATA,
"Name=id", "Value={ID}", ENDITEM,
"Name=val", "Value=1000", ENDITEM,
"Name=token", "Value={token}", ENDITEM,
"Name=rewardValue", "Value=0", ENDITEM,
LAST);
lr_end_transaction("投标结束", LR_AUTO);
lr_error_message("token获取成功:%s",lr_eval_string("{token}"));
if(strcmp(lr_eval_string("{token}"),"1")==0){
lr_end_transaction("token获取成功",LR_PASS); //成功
lr_output_message("token获取成功,值为:%s",lr_eval_string("{username}"));
}else{
lr_end_transaction("token获取失败",LR_FAIL); //失败
}
return 0;
}