1

HTTP :: Proxyを使用していますが、特定のドメインで失敗させる方法を理解できません。

ここにいくつかのコードがあります。

use HTTP::Proxy;
use HTTP::Proxy::BodyFilter::simple;
use HTTP::Proxy::HeaderFilter::simple;
use Getopt::Long;

my $port = 3128;
my $fail_at;

my $ret = GetOptions ( "port=i" => \$port,
            "fail=s" => \$fail_at );

my @fail_at = split(/,/, $fail_at);

my $proxy = HTTP::Proxy->new;
$proxy->port( $port );

my $fail_filter = HTTP::Proxy::HeaderFilter::simple->new(
        sub { $_[1]->header( HEADERS_HERE ); }
);

foreach my $url (@fail_at) {
    $proxy->push_filter(
        host => $url,
        response => $fail_filter
    );
}

$proxy->start;

HEADER_HEREの代わりに私が何を書かなければならないかを理解するのを手伝ってくれませんか?試してみましStatus => '403 Forbidden'たが、うまくいきませんでした。http応答のすべての行を変更できますが、最初の行です。

どうもありがとうございます。

4

1 に答える 1

0

のメソッドcodeHTTP::Response参照してください。

use HTTP::Status qw(HTTP_FORBIDDEN);
⋮
my $fail_filter 
  = HTTP::Proxy::HeaderFilter::simple->new(sub {
    $_[2]->code(HTTP_FORBIDDEN);
});
于 2012-06-04T13:04:11.617 に答える