Perl - HTTP :: Proxy перехватывает связь XHR / JSON

Сайтhttp://openbook.etoro.com/#/main/ имеет прямую трансляцию, генерируемую javascript с помощью запросов поддержки активности XHR и получения ответов от сервера в виде сжатой gzip строки JSON.

Я хочу записать канал в файл.

Обычный способ (WWW :: Mech ..) (вероятно) нежизнеспособен, потому что необходимость тщательно продумывать разработку всех Javascript-скриптов на странице и моделировать браузер - действительно трудная задача, поэтому поиск альтернативного решения.

Моя идея заключается в использовании тактики «Человек посередине», так что обозреватель выполнит свою работу, и я хочу перехватить общение через Perl-прокси, предназначенное только для этой задачи.

Я могу перехватить исходное сообщение, но не сам фид. Прокси работает нормально, потому что в браузере канал работает, только мои файлеры не работают.

use HTTP::Proxy;
use HTTP::Proxy::HeaderFilter::simple;
use HTTP::Proxy::BodyFilter::simple;
use Data::Dumper;
use strict;
use warnings;

my $proxy = HTTP::Proxy->new(
     port => 3128, max_clients => 100, max_keep_alive_requests => 100
);

my $hfilter = HTTP::Proxy::HeaderFilter::simple->new(
    sub {
        my ( $self, $headers, $message ) = @_;
        print STDERR "headers", Dumper($headers);
    }
);

my $bfilter = HTTP::Proxy::BodyFilter::simple->new(
    filter => sub {
        my ( $self, $dataref, $message, $protocol, $buffer ) = @_;
        print STDERR "dataref", Dumper($dataref);
    }
);

$proxy->push_filter( response => $hfilter); #header dumper
$proxy->push_filter( response => $bfilter); #body dumper
$proxy->start;

Firefox настроен с использованием вышеуказанного прокси для всех видов связи.

Канал работает в браузере, поэтому прокси передает данные. (Когда я прекращаю прокси, подача останавливается тоже). Случайно (не могу понять, когда) я получаю следующую ошибку:

[Tue Jul 10 17:13:58 2012] (42289) ERROR: Getting request failed: Client closed

Can anybody show me a way, how to construt the correct HTTP::Proxy filter for Dumper all communication between the browser and the server regardles of keep_alive XHR?

Ответы на вопрос(2)

Ваш ответ на вопрос