0

我有这样的代码

my $ua = new LWP::UserAgent;
$ua->timeout($timeout);
$ua->agent($useragent);
$response = $ua->post($domain,['login_name'=>$login,'login_password'=> $password])->as_string;

页面内容太大,收不到。如何仅通过发送帖子数据获取标题?

4

2 回答 2

1

首先,检查您是否可以login_name通过login_passwordHEAD(在 url 字符串中:)传递它domain/?login_name=...&login_password=...。如果这不起作用,那么你的情况很糟糕。

您不能将 POST 与 HEAD 的行为一起使用。LWP 将等待完整响应。

无论如何,使用 POST 服务器都会向您发送内容,但是您可以避免自己使用套接字 tcp 接收所有内容:gethostbynameconnectsysread ,直到您/\r?\n\r?\n/在此之后获取并关闭套接字。无论如何都会使用一些流量,但您可以节省内存和接收时间。

使用套接字执行此操作并不正常,但有时当您拥有高负载/大数据时 - 没有比这种混乱更好的方法了。

于 2012-12-03T17:33:52.547 回答
1

我认为这应该为你做。

my $ua = LWP::UserAgent->new();
$ua->timeout($timeout);
$ua->agent($useragent);
my $response = $ua->post( 
    $domain,
    [ 'login_name' => $login, 'login_password' => $password ] 
);

use Data::Dumper;

print Dumper( $response->headers() );
print $response->request()->content(), "\n";
于 2012-12-03T14:25:02.457 回答