Mojo :: CookieJar - как загрузить файлы cookie из файла

Как загрузить файлы cookie из файла в Mojo, как этот код:

my $mech = WWW::Mechanize->new();
$mech->cookie_jar(HTTP::Cookies->new());

if (-e "cookie.txt") {
    print q[Cookie file: cookie.txt found!\n];

    $mech->cookie_jar(HTTP::Cookies->new(
        file => q[cookie.txt],
    ));

    $mech->get(qq[$cfg->{'url'}/login]) or die qq[invalid request\n];
} else {
    print q[Cookie file: cookie.txt NOT found!\n];

    $mech->get(qq[$cfg->{'url'}/login]) or die qq[invalid request\n];

    $mech->submit_form(
        form_name => 'login',
        fields => {
            'email'     => $cfg->{'email'},
            'password'  => $cfg->{'password'},
        },
    );
    die qq[ERROR: Failed to login!\n] unless ($mech->success);

    $mech->cookie_jar->save("cookie.txt");
}

Если там cookie.txt, скрипт использует имя пользователя и пароль, а полученные файлы cookie сохраняются в файле cookie.txt и в следующий раз с использованием этого файла.

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

my $ua = Mojo::UserAgent->new;
$ua->cookie_jar(Mojo::CookieJar->new);
and then I do not know how to continue :)

Постскриптум Извините за мой английский и perl :)

1
nl ja de

1 ответы

Как я знаю, Mojolicious не поддерживает эту функцию, но вы можете использовать функции хранения и извлечения модуля Storable следующим образом:

use Mojo::Base -strict;

# uncomment to be sure
#BEGIN { $ENV{MOJO_USERAGENT_DEBUG} = 1; }

use Mojo::UserAgent;
use Storable;

my $cookie_path = 'my.cookie';
my $req_str     = 'http://www.google.com/';


SAVE: {
  my $ua1 = Mojo::UserAgent->new;
  $ua1->get($req_str);
  store $ua1->cookie_jar, $cookie_path;
}

my $ua2 = Mojo::UserAgent->new;

# load
$ua2->cookie_jar(retrieve($cookie_path));

# make a request with loaded cookie
$ua2->get($req_str);
1
добавлено
say $ ua1-> cookie_jar-> all . Или вы можете задать эту функцию здесь
добавлено автор alexbyk, источник
Спасибо! Это сработало! Еще один вопрос: можно ли сохранить файл cookie в формате txt?
добавлено автор METAJIJI, источник
JavaScript Jobs — чат
JavaScript Jobs — чат
8 336 участник(ов)

JavaScript Jobs — чат для поиска работы и людей Правила оформления: https://teletype.in/@telegram-ru/r1WQe5F1m См. также: @mobile_jobs, @devops_jobs, @nodejs_jobs, @react_js, @angular_ru, @js_ru

JavaScript.ru
JavaScript.ru
7 932 участник(ов)

Сообщество сайта JavaScript.ru в Slack.

pro.js
pro.js
4 675 участник(ов)

Про JavaScript и NodeJS Invite: https://t.me/joinchat/Be4rsT5Rsgq30DHutjxXgA Правила: http://telegra.ph/ru-chat-rules-06-19 Вакансии только с ЗП, не чаще раза в неделю.

JavaScript — русскоговорящее сообщество
JavaScript — русскоговорящее сообщество
3 269 участник(ов)

Рекомендуем сразу отключить уведомления Правила: https://rudevs.network/ByaMH6un7 См. также: @js_noobs_ru, @nodejs_ru, @typescript_ru, @react_js, @electron_ru Вакансии и поиск работы: @javascript_jobs

JavaScript Noobs — сообщество новичков
JavaScript Noobs — сообщество новичков
2 484 участник(ов)

Чат для новичков

javascript_ru
javascript_ru
915 участник(ов)

Сообщество любителей самого популярного языка программирования в мире. Чат основан в 2009 году. Логи: https://goo.gl/9EOeM7 Поддержка бота: @chat_linker (ссылка на репу внутри) Вам будут интересны @frontend_ru и @css_ru

jsChat
jsChat
603 участник(ов)

Чат посвященный программированию на языке javaScript Перед отправкой ссылки на Ваш контент посоветуйтесь с админом Все ссылки удаляются ботом автоматически

JavaScript for Zombies Chat
JavaScript for Zombies Chat
492 участник(ов)

Чат про JavaScript для настоящих zombie! Вход строго по приглашениям! Ссылка для строгих приглашений: https://t.me/joinchat/AAMBHz3Uyr0tuZ7VaB029g

All That JS
All That JS
417 участник(ов)

JS на русском

Modern::Perl
Modern::Perl
362 участник(ов)

Пожалуйста, представьтесь при добавлении в группу. Это необходимо во избежание спам-ботов. Ваше первое сообщение не должно быть ссылкой или репостом. Мы всегда рады нестандартным вопросам.

use Perl or die;
use Perl or die;
164 участник(ов)

Группа о языке Perl и обо всём что с ним связано.

pro.perl
pro.perl
22 участник(ов)

Язык программирования Perl