gpt4 book ai didi

perl - 是否可以使用 Perl HTTP::Async 模块读取 header ?

转载 作者:可可西里 更新时间:2023-11-01 16:28:57 27 4
gpt4 key购买 nike

为了优化我的 Perl 应用程序,我需要处理 async HTTP 请求,这样我就可以在 HTTP 响应完成后处理其他操作。所以我相信我唯一的选择是使用 HTTP::Async模块。这适用于简单的请求,但我需要从一个响应中捕获 cookie header 并将其与下一个响应一起发送,因此我需要阅读 headers。我的代码是:

             ...

$async->add($request);
while ($response = $async->wait_for_next_response)
{
threads->yield(); yield();
}
$cookie = $response->header('Set-Cookie');
$cookie =~ s/;.*$//;
$request->header('Cookie' => $cookie);

...

但它不起作用,因为它以错误结束无法在未定义的值上调用方法“header”。显然$responseundef。如何在 $response 获取 undef 之前捕获 header ?

最佳答案

while ($response = $async->wait_for_next_response)
{
threads->yield(); yield();
}

保证在 $response 为 false 之前不会完成。 wait_for_next_response 将返回的唯一错误值是 undef。您需要在循环内提​​取 cookie,或者在循环内缓存最后的良好响应。

有点像

my $last_response;
while ($response = $async->wait_for_next_response)
{
$last_response = $response;
threads->yield(); yield();
}

应该可以,但我不确定您是否需要循环。没有完整的程序很难说。

关于perl - 是否可以使用 Perl HTTP::Async 模块读取 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9523368/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com