2014-01-19 31 views
0

这是我可以减少的最简单的测试案例。如果你更熟悉其中的任何一个,它可能有助于将其转换为使用本地节点HTTP或使用请求库。但事实是,我找回了一堆jquery废话。 AFAICT,发送的HTTP POST请求等同于一个在这里卷曲编程:https://stackoverflow.com/a/15169425/3025492为什么不尝试使用superagent在Node.js上成功登录到reddit?

var USER = 'uuuut', 
    PASS = 'ppppt'; 
superagent 
    .post('https://pay.reddit.com/api/login/') 
    .send({ api_type: 'json', rem: 'True', 
       user: USER, passwd: PASS }) 
    .end(function(res) { 
     console.log('Session cookie: ', res.body.data.cookie || res.headers['Set-Cookie']); 
    }); 

当正确完成,它只是应该设置身份验证Cookie。

回答

2

有你的代码的几个问题:

  1. form代替json发布请求,所以你需要的方法.type('form')
  2. 在返回的cookie:res.body.json.data.cookie
  3. 头中的SuperAgent必须小写:res.headers['set-cookie']

Full code:

superagent 
    .post('https://pay.reddit.com/api/login/') 
    .type('form') // send request in form format 
    .send({ api_type: 'json', rem: 'True', 
       user: USER, passwd: PASS }) 
    .end(function(err, res) { 
     console.log('Session cookie: ', res.body.json.data.cookie || res.headers['set-cookie']); 
    }); 
+0

谢谢,我稍后再试一试。 – user3025492

+0

真棒,工作。感谢您的提示。 – user3025492

+0

你介意看看脚本的其余部分吗?它得到了一些奇怪的编码或乱码文本回来,这是完全窒息... https://gist.github.com/bmproc/bdcd926c875597e3246b如果你能弄清楚是什么问题,我非常感谢它。谢谢,@damphat – user3025492

相关问题