Как записать файлы cookie из банки с печеньем? - PullRequest
0 голосов
/ 24 декабря 2018

Как я могу записать файлы cookie, которые хранятся в банке cookie, с помощью модуля npm запроса-обещания.

Я попытался напечатать переменную cookie jar, но, как и ожидалось, это не работает.

Как я создаю банку,

var request = require('request-promise');
var sess = request.jar()

Код, отправляющий запрос,

request({url: myurl, jar: sess}, function () {
    request(
        {
            url: 'myurl',
            method: 'POST',
            headers: [
            {
                "Accept": "application/json",
            }
            ],
            postData: {
                "xqr":"1"
            }
        }
)

Я ожидаю, что все файлы cookie, использованные для отправки моего запроса, будут распечатаны с использованием console.log()

1 Ответ

0 голосов
/ 24 декабря 2018

request использует tough-cookie для внутреннего использования.Таким образом, вы можете легко получить доступ к tough-cookie store , который является абстрактным классом, и использовать его функцию-прототип getAllCookies.

function logCookies(jar){
    jar._jar.store.getAllCookies(function(err, cookieArray) {
        if(err) throw new Error("Failed to get cookies");
        console.log(JSON.stringify(cookieArray, null, 4));
    });
}

. При этом будут регистрироваться все файлы cookie и его свойства.

[
    {
        "key": "1P_JAR",
        "value": "1P_JAR_VALUE",
        "expires": "2019-01-23T20:09:38.000Z",
        "domain": "google.com",
        "path": "/",
        "hostOnly": false,
        "creation": "2018-12-24T20:09:37.800Z",
        "lastAccessed": "2018-12-24T20:09:38.097Z"
    },
    {
        "key": "NID",
        "value": "NID_VALUE",
        "expires": "2019-06-25T20:09:38.000Z",
        "domain": "google.com",
        "path": "/",
        "httpOnly": true,
        "hostOnly": false,
        "creation": "2018-12-24T20:09:37.802Z",
        "lastAccessed": "2018-12-24T20:09:38.098Z"
    }
]

Если вы хотите получить только необработанную строку cookie, вы можете просто использовать

console.log(cookieArray.map(cookie => cookie.toString()))

И это даст вам

[
    '1P_JAR=1P_JAR_VALUE; Expires=Wed, 23 Jan 2019 20:15:02 GMT; Domain=google.com; Path=/',
    'NID=NID_VALUE; Expires=Tue, 25 Jun 2019 20:15:02 GMT; Domain=google.com; Path=/; HttpOnly'
]
...