簡體   English   中英

Node.js發布請求-使會話保持活動狀態

[英]Node.js Post Request - Keep Session Alive

大家好(新年快樂:))! 我正在嘗試Node.js和Express.js,並且在處理多個請求時遇到了一些困難。

問題是:我需要從外部網站檢索數據。 為此,我必須登錄並且我有一個偽造/僵屍帳戶。 我想做的是先發送帶有我的用戶名和密碼的POST請求,然后發送GET請求以訪問特定內容。 問題是,即使POST請求成功執行,當我執行GET請求時,我也不再登錄。我在Ruby中使用Gem Mechanize做同樣的事情,但是,它可能應該做一些隱式的操作。使整個過程正常工作的東西。

為了發出請求,我使用了請求模塊( https://github.com/request/request )。 並且,這是代碼:

var zombie = require('request').defaults({
  headers: { connection: "keep-alive" },
  pool: {maxSockets: 1},
});

var connect = function(req, res, next){
  zombie.post({
    url: "target.com",
    form: {
      user: "zombie",
      pass: "password"}
  }, function(err, response, body){
    req.connected = true;
    next();
  });
}

var information = function(req, res, next){
  if(req.connected){
    zombie.get({
      url:  "target.com",
      qs: {
        page: "targetPage",
        search: req.params.search}
    }, function(err, response, body){
      res.send(body);
    })
  }
}

而且,我正在嘗試從控制器進行連接,然后訪問信息。

var router = require('express').Router();
var zombie = require('./../middleware/Zombie');
router.get('/search/:search', zombie.connect, zombie.information);

服務器很可能會發送回Set-Cookie並且它會被忽略( request模塊的默認行為)。 要解決此問題,您需要npm install tough-cookie ,然后設置jar config選項 有一些示例顯示了各種Cookie罐的使用情況。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM