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