You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为LWP::UserAgent的get回调设置自定义数据块大小?

正确设置LWP::UserAgent分块读取的块大小

要自定义LWP::UserAgent分块读取的块大小,可按以下方式操作:

  • 方法一:设置UserAgent对象属性
    创建$ua实例后,直接配置read_size_hint属性,再发起请求:

    my $ua = LWP::UserAgent->new;
    $ua->read_size_hint(4*1024*1024); # 设定为4MB
    my $r = $ua->get($url, ':content_cb' => sub {
        my ($chunk, $resp, $proto) = @_;
        # 处理分块内容逻辑
    });
    
  • 方法二:请求参数传递(需注意场景限制)
    你之前的写法语法本身正确,但未生效通常是因为服务器采用了分块编码(Transfer-Encoding: chunked)。这种情况下,响应的块大小由服务器决定,客户端的read_size_hint参数无法强制修改实际接收的块尺寸。

关键说明

若服务器未使用分块编码,read_size_hint会作为底层读取操作的建议值,实际块大小会接近设定值(可能受系统socket缓冲区等因素略有偏差);但如果服务器启用分块编码,客户端只能按服务器发送的块大小接收,此时该参数不会生效。

内容的提问来源于stack exchange,提问作者Ωmega

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 15:20:25