通过socket post cookie进行post提交,Cookie又怎么搞

loginapi(){&& &web_url("rest", && &&& &"URL=http://192.168.117.154/router/rest", && &&& &"Resource=0", && &&& &"RecContentType=text/html", && &&& &"Referer=", && &&& &"Snapshot=t1.inf", && &&& &"Mode=HTML", && &&& &LAST);&& &web_url("favicon.ico", && &&& &"URL=http://192.168.117.154/favicon.ico", && &&& &"Resource=0", && &&& &"RecContentType=text/html", && &&& &"Referer=", && &&& &"Snapshot=t2.inf", && &&& &"Mode=HTML", && &&& &LAST);&& &lr_rendezvous("loginapi");&& &lr_start_transaction("loginapi");&& &lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG | LR_MSG_CLASS_RESULT_DATA, LR_SWITCH_ON );&& &web_reg_find("Text=操作成功", && &&& &LAST);&& &web_submit_data("testpost", && &&& &&& &&& &&& "Action=http://192.168.117.154/router/rest",&& &&& &&& &&& &&& "Method=POST",&& &&& &&& &&& &&& "RecContentType=text/html",&& &&& &&& &&& &&& "Mode=HTML",&& &&& &&& &&& &&& ITEMDATA, && &"Name=method","Value=test.user.UserService.userInfoByTicket",ENDITEM,&& &"Name=v","Value=1.0",ENDITEM,&& &"Name=app_key","Value=120",ENDITEM,&&& "Name=ticket","Value=1111111",ENDITEM, && &"Name=sign","Value=",ENDITEM,&& &LAST);&& &lr_set_debug_message(LR_MSG_CLASS_EXTENDED_LOG | LR_MSG_CLASS_RESULT_DATA, LR_SWITCH_OFF);&& &lr_end_transaction("loginapi", LR_AUTO);&& &return 0;}
模拟APP发送请求给Cloud,一般都是用户登录后。cloud会返回登录成功的消息并且返回一个cookie给app,app下次要做一些例如设置名称之类的工作,在请求消息里面会携带返回的cookie,而且cloud也会校验这个cookie& 1、第一次请求登录,获取cookie,2、使用第一次请求获取的cookie进行第二次请求
Action(){web_reg_save_param("par1",&&&&&&&&&&&&&&&&&&&&&&&&&"LB=auth_key\":\"",&&&&&&&&&&&&&&&&&&&&&&&&&"RB=\"",&&&&&&&&&&&&&&&&&&&&&&&&&LAST);web_reg_save_param("par3",&"LB=Set-Cookie:&",&"RB=;",&"ORD=2",&LAST);web_reg_save_param("par4",&&&&&&&&&&&&&&&&&&&&&&&&&"LB=Set-Cookie:&",&&&&&&&&&&&&&&&&&&&&&&&&&"RB=;",&&&&&"ORD=3",&&&&&&&&&&&&&&&&&&&&&&&&&LAST); web_custom_request("login",&&&"URL=http://192.168.1.102/api/user/login",&&&"Method=POST",&&&"Resource=0",&&&"Referer=",&&&"mode=HTTP",&&&&&&"Body=email=t993&#&password=8c2b2f9cdbf64a33e81b371",&&&&&&&&&&&&&&&&&&&&&&&&&&LAST);lr_message&("par1:%s",&lr_eval_string("{par1}"));lr_message&("par3:%s",&lr_eval_string("{par3}"));lr_message&("par4:%s",&lr_eval_string("{par4}"));&&&&&&&&return&0;}Action2(){web_cleanup_cookies();web_add_header("cookie",&&&"{par3};{par4};{par1}");web_custom_request("info",&&&"URL=http://192.168.1.102/api/app/set/device",&&&"Method=POST",&&&"Resource=0",&&&"Referer=",&&&"mode=HTTP",&&&&&&"Body=camid=4026aabz&auth_key={par1}",&&&LAST);return&0;}<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
您的访问请求被拒绝 403 Forbidden - ITeye技术社区
您的访问请求被拒绝
亲爱的会员,您的IP地址所在网段被ITeye拒绝服务,这可能是以下两种情况导致:
一、您所在的网段内有网络爬虫大量抓取ITeye网页,为保证其他人流畅的访问ITeye,该网段被ITeye拒绝
二、您通过某个代理服务器访问ITeye网站,该代理服务器被网络爬虫利用,大量抓取ITeye网页
请您点击按钮解除封锁&express post提交获取参数的问题 - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
app.post(’/views/validation.html’,function(req,res){
console.log(req.body);
post 到这个页面的时候, 答应出
客户端的form 代码如下:
&form id="text_form" method="POST" action="/views/validation.html"&
name:&input type="text" id="name"&&/ br&
age:&input type="text" id="age"&&/ br&
&input class="submit" type="submit" value="提交"/&
求 怎么获取post提交的数据
你自己改写了吧。
不是router.post么。其他逻辑上没什么问题。
var app = express();用的是express
var express = require(‘express’);
var router = express.Router();
router.post 这样试试
这样写的话 直接就找不到指定的页面了 估计应该是路由路径不对
我看其他人的帖子都是用req.body 这样来获取Post过来的值,用过req.parmes 或者rqp.query来获取get过来的值,我自己测试过get过来的值 是可以获取到的,但是post过来的就是找不到
var routes = require(’…/route’);
在app.use(express.static(path.join(__dirname, ‘…/public’)));app.use(cookieParser(’*’));之后插入
app.use(router)
// route/index.js
var express = require(‘express’);
var router = express.Router();
router.post(’/views/validation.html’,function(req,res){
console.log(req.body);
这是我server.js的全部代码
var express = require(‘express’);
var ejs = require(‘ejs’);
var sio = require(‘’);
var app = express();
var urlrouter = require(‘urlrouter’);
app.set(‘view engine’,‘html’);
app.set(‘views’,__dirname+&/views&);
app.set(‘view option’,{layout:false});
app.engine(’.html’, ejs.__express);
app.use(express.static(__dirname+’/public’));
app.post(’/’,function(req,res,next){
if(!=null)
/res.json([{“name”:req.query.name,“id”:1,“age”:18},{“name”:“张三”,“id”:2,“age”:12},
{“name”:“Tmo”,“id”:3,“age”:13},
{“name”:“Jerry”,“id”:4,“age”:14},
{“name”:“Jim”,“id”:5,“age”:15}]);/
console.log();
res.send(‘err’);
console.log(‘err’);
app.get(&#x27;&#x2F;&#x27;,function(req,res,next){
res.render(&#x27;index&#x27;);
app.get(&#x27;&#x2F;views&#x2F;*.html&#x27;,function(req,res,next){
res.render(req.params[0]);
&#x2F;&#x2F;console.log(req.query.id);
app.post(&#x27;&#x2F;views&#x2F;validation.html&#x27;,function(req,res,next){
console.log(req.query);
console.log(req.body);
/*var router = urlrouter(function (app) {
app.listen(3000);
里面app.get或者app.post 对应的代码块都是会执行的,唯一的问题就是post方法里面取值 取不到,刚才我根据别人的例子,把所有的请求代码放到
/*var router = urlrouter(function (app) {
});*/代码块中去,结果就是连首页都找不到了
var express = require(‘express’);
var ejs = require(‘ejs’);
var sio = require(‘’);
var app = express();
var urlrouter =
express.Router();
app.set(‘view engine’,‘html’);
app.set(‘views’,dirname+&/views&);
app.set(‘view option’,{layout:false});
app.engine(’.html’, ejs.express);
app.use(express.static(__dirname+’/public’));
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
urlrouter.post(’/’,function(req,res){
if(!=null)
console.log();
res.send(‘err’);
console.log(‘err’);
urlrouter.get(’/’,function(req,res){
res.render(‘index’);
urlrouter.get(’/views/*.html’,function(req,res){
res.render(req.params[0]);
urlrouter.post(’/views/validation.html’,function(req,res){
console.log(req.body);
应用下bodyParser:
app.use(bodyParser.urlencoded({ extended: true }));
app.use(bodyParser.json());
卧槽正解。我都忘了。
这是按你说的,整理以后的代码
var express = require(‘express’);
var ejs = require(‘ejs’);
var sio = require(‘’);
var app = express();
var urlrouter =
express.Router();
app.set(‘view engine’,‘html’);
app.set(‘views’,__dirname+&/views&);
app.set(‘view option’,{layout:false});
app.engine(’.html’, ejs.__express);
app.use(express.static(__dirname+’/public’));
urlrouter.post(’/’,function(req,res){
if(!=null)
console.log();
res.send(‘err’);
console.log(‘err’);
urlrouter.get(’/’,function(req,res){
res.render(‘index’);
urlrouter.get(’/views/*.html’,function(req,res){
res.render(req.params[0]);
urlrouter.post(’/views/validation.html’,function(req,res){
console.log(req.body);
app.listen(3000);
这样写的话 我chmore
页面显示的就是Cannot GET /
bodyParser这个是需要先npm 安装一下 然后require(‘bodyParser’)这样吗?
bodyParser是什么 ?
不要安装,直接引用。是EXPRESS的中间件。解析文件头的。
是一个connect,express的中间件。安装了express就有的吧
把你的那两句代码加进去以后 报错说是 bodyParser未定义。我刚才也翻了一下书,说bodyParser是conncet中间件的一个插件,然后我也安装了一下conncet 然后再用bodyParser
说是connect.bodyParser
方法未定义
ReferenceError: bodyParser is not defined
at Object.&anonymous& (C:\Users\hc\Desktop\node\server.js:12:9)
at Module._compile (module.js:456:26)
at Object.Module._extensions…js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:906:3
可能版本不同,
我用的是express4
“name”:“express-tweet”
,“version”:“0.0.1”
,“dependencies”:{
“express”:“4.5.1”
,“ejs”:“0.4.2”
,“superagent”:“0.3.0”
,“connect”:“3.0.2”
用express直接调用bodyparser 会报错说是没有这个方法,然后我安装了一个body-parser的组件。 运行正常了,可是获取到的req.body 为{}.
&cookie-parser&: &~1.0.1&,
&body-parser&: &~1.0.0&,
加进去之后在根目录 npm install一次
app.use(logger(‘dev’));
app.use(bodyParser.json());
app.use(bodyParser.urlencoded());
app.use(express.static(path.join(__dirname, ‘…/public’)));
这个顺序。加进去。
有个问题非常的奇怪,我贴出代码 你看下 这个是我html的页面
&script language="javascript" type="text/javascript" src="/js/jquery.js"&&/script&
&script language="javascript" type="text/javascript" src="/js/jquery.validate.min.js"&&/script&
&link rel="stylesheet" href="css/ui.jqgrid.css"&
&script type="text/javascript" &
$(function(){
type: &#x27;POST&#x27;,
url: &#x27;&#x2F;views&#x2F;validation.html&#x27;,
data: { name: &John&, age: 18 },
success: function(data){
alert(&Data Loaded: & + data);
dataType: &#x27;text&#x27;
function fun()
type: &#x27;POST&#x27;,
url: &#x27;&#x2F;views&#x2F;validation.html&#x27;,
data: { name: &John&, age: 18,address:&aaa& },
success: function(data){
alert(&Data Loaded: & + data);
dataType: &#x27;text&#x27;
&form id="test_form" method="POST" action="/views/validation.html"&
name:&input type="text" id="name"&&/ br&
age:&input type="text" id="age"&&/ br&
&button onclieck="fun()"& click&/button&
&input class="submit" type="submit" value="提交"/&
用的Jquery
界面加载的时候就会执行一次$.ajax ,会发送一个{ name: “John”, age: 18 }数据目标页面 也就是本页面,然后对应的请求方法是:
app.post(’/views/validation.html’,function(req,res,next){
console.log(“post”);
console.log(req.body);
第一次会输出正确的数据。可是当我点击click按钮手动触发fun()函数的异步请求的时候,req.body显示为{}.诶,这个问题真心搞不懂了,如果可以的话我把代码发给你们,帮我看看吧
真无奈了,为什么我的项目中都无法调用conncet下的中间件呢?刚才bodyparser,你刚才说的logger 都不行,然后我npm install logger,但是还是不行。把app.use(logger(‘dev’));注释掉以后,还是出现我刚才说的那样的问题,就页面第一次加载会有值,以后请求就没有
兄台,你的html里面的表单没有加name属性啊- - req.body当然为空啦。。。
&input type=&text& id=&name& name=&name&&
哎呀,卧槽,没脸见人了,这真没脸见人了…总忘记了最基本的东西.
哥们你这个问题解决了没
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的

我要回帖

更多关于 websocket 带cookie 的文章

 

随机推荐