0

我需要显示散列中的“内容”,我使用: $c->header("content") 进行测试,但没有显示任何内容,但如果这样,则显示内容散列值。

因为我可以显示_content?

哈希

<pre>
$VAR1 = bless(
    {
        '_protocol' => 'HTTP/1.1',
        '_content'  => '-----------------------------8283483225031
Content-Disposition: form-data; name="archivo"; filename="GFWLIVESetupLog.txt"
Content-Type: text/plain

  l i v e R e d i s t :   0
 G F W L C l i e n t :   0

-----------------------------8283483225031
Content-Disposition: form-data; name="destino"

C:/perl/test.txt
-----------------------------8283483225031--
',
        '_uri' => bless(
            do {
                \(
                    my $o =
                      'http://localhost/shell.php?uploa
d='
                );
            },
            'URI::http'
        ),
        '_headers' => bless(
            {
                'user-agent' => 'Mozilla/5.0 (Windows NT
 5.1; rv:19.0) Gecko/20100101 Firefox/19.0',
                'accept' => 'text/html,application/xhtml
+xml,application/xml;q=0.9,*/*;q=0.8',
                'accept-language' => 'es-ar,es;q=0.8,en-
us;q=0.5,en;q=0.3',
                'cookie' => 'PHPSESSID=a8bkktvsripf6agpi
fnma61qq4',
                'content-length' => '378',
                'host'           => 'localhost',
                'via'            => '1.1 doddy-701c8cb49 (HTTP::Pro
xy/0.20)',
                'content-type' => 'multipart/form-data;
boundary=---------------------------8283483225031',
                'x-forwarded-for' => '127.0.0.1',
                'referer'         => 'http://localhost/shell.php
?upload='
            },
            'HTTP::Headers'
        ),
        '_method' => 'POST'
    },
    'HTTP::Request'
);

</pre>

来源 :

use HTTP::Proxy;
use HTTP::Proxy::BodyFilter::simple;
use HTTP::Proxy::BodyFilter::complete;
use Data::Dumper;

my $server = HTTP::Proxy->new(port=>8080);
$server->host();

$server->push_filter(mime=>undef,response => HTTP::Proxy::BodyFilter::complete->new());

$server->push_filter(
mime=>undef,
request=>HTTP::Proxy::BodyFilter::simple->new(\&enable),
response => HTTP::Proxy::BodyFilter::simple->new(\&enable2));

$server->start();

sub enable {

    my($a,$b,$c,$d,$e) = @_;

print $c->header("content");

    #print Dumper $c;

}

sub enable2 {
 my ($j,$k,$l,$m,$n) = @_;
  print $$k;
}

pd : 原谅我的英语不好

4

1 回答 1

1

内容不在标题中。在您的转储程序输出中,标头是键HTTP::Headers表示的对象_headers。您想调用该content方法。

$c->content;

有关可用方法的完整列表,请参阅HTTP::Request 文档。

于 2013-04-06T01:31:51.233 回答