要優化我的Perl應用程序我需要使用異步 HTTP請求,所以我可以在HTTP響應完成後處理其他操作。所以我相信我唯一的選擇是使用HTTP::Async模塊。這對簡單的請求工作正常,但我需要從一個響應中捕獲cookie頭,並將其與下一個響應發送,所以我需要閱讀標頭。我的代碼是:是否可以使用Perl HTTP :: Async模塊讀取標題?
...
$async->add($request);
while ($response = $async->wait_for_next_response)
{
threads->yield(); yield();
}
$cookie = $response->header('Set-Cookie');
$cookie =~ s/;.*$//;
$request->header('Cookie' => $cookie);
...
,但它不工作,因爲它與一個錯誤結束未定義的值無法調用「頭」。顯然$response
是undef
。如何在$response
獲得undef
之前獲得標題?
很少有很多異步HTTP模塊。您可能想要轉向基於事件的模塊,如AnyEvent :: HTTP或POE :: Component :: Client :: HTTP,並在回調中處理您的響應。您不應該爲您的整個應用程序使用POE或AnyEvent。 – MkV 2012-03-02 01:00:43