2012-12-03 51 views
0

我有這樣LWP發送POST請求,並得到頭文件只能在響應

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

頁那麼大的內容代碼,thatI不能接收。如何僅通過發送發佈數據獲取標題?

+1

它是如此大以至於你無法接收它? –

回答

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"; 
+0

此答案不回答問題。什麼是錯誤mesaages? –

1

要首先,請檢查您是否可以通過HEAD通過這個login_namelogin_password(以URL字符串:domain/?login_name=...&login_password=...)。如果這不起作用,那麼你的情況很糟糕。

您不能在HEAD行爲中使用POST。 LWP將等待完整回覆。

使用POST服務器無論如何都會給你的內容,但你可以避開自己接收使用TCP套接字的所有內容:的gethostbyname連接sysread執行,直到你在這之後/\r?\n\r?\n/和關閉套接字。無論如何都會使用一些流量,但您可以節省內存並獲得時間。

這是不正常的事情與套接字,但有時當你有高負荷/大數據 - 沒有比這樣的混亂更好的辦法。

相關問題