我有这样的代码
my $ua = new LWP::UserAgent;
$ua->timeout($timeout);
$ua->agent($useragent);
$response = $ua->post($domain,['login_name'=>$login,'login_password'=> $password])->as_string;
页面内容太大,收不到。如何仅通过发送帖子数据获取标题?
首先,检查您是否可以login_name
通过login_password
HEAD(在 url 字符串中:)传递它domain/?login_name=...&login_password=...
。如果这不起作用,那么你的情况很糟糕。
您不能将 POST 与 HEAD 的行为一起使用。LWP 将等待完整响应。
无论如何,使用 POST 服务器都会向您发送内容,但是您可以避免自己使用套接字 tcp 接收所有内容:gethostbyname、connect、sysread ,直到您/\r?\n\r?\n/
在此之后获取并关闭套接字。无论如何都会使用一些流量,但您可以节省内存和接收时间。
使用套接字执行此操作并不正常,但有时当您拥有高负载/大数据时 - 没有比这种混乱更好的方法了。
我认为这应该为你做。
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";