perl - 在纯 Perl 中从另一个 HTTP 资源流式传输的最简单方法是什么?

标签 perl http streaming mod-perl

在 Perl 中从另一个 HTTP 资源流式传输的最简单方法是什么(无需打开 shell 来 curl 和读取标准输入)?我在这里假设我正在读取的 HTTP 资源是一个潜在的无限流(或者只是非常非常长)

最佳答案

良好的旧 LWP 允许您将结果作为流处理。

例如,这里是对 yourFunc 的回调,将 byte_count 字节读取/传递给对 yourFunc 的每次调用(如果您不关心每次调用的数据有多大,并且只想将流处理为尽可能快):

use LWP;
...
$browser = LWP::UserAgent->new();
$response = $browser->get($url, 
                          ':content_cb' => \&yourFunc, 
                          ':read_size_hint' => byte_count,);
...
sub yourFunc {
   my($data, $response) = @_;
   # do your magic with $data
   # $respose will be a response object created once/if get() returns
}

关于perl - 在纯 Perl 中从另一个 HTTP 资源流式传输的最简单方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1567895/

相关文章:

regex - 如何在不解释元字符的情况下将变量用于正则表达式模式?

c# - header 检查 C# 总是 403?

http - NGINX proxy_pass 变更方案

android - 使用附近的连接A​​PI进行音频流

perl - 数组与列表引用问题

regex - 正则表达式 `## Example[^]+### Response` 无法匹配

perl - 在 Perl 的单元测试期间提示用户

http - 使用文件和 xml 内容发出 POST 请求

php - Stream_get_contents 第二次不起作用?

ios - AudioQueueDispose 在 IOS 6 中崩溃,在 IOS 5 中工作正常