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

使用LWP::UserAgent获取日志时输出被截断,如何解决?

解决方法
  • 修正命令分隔符:多数网络设备的CLI及对应HTTP API用分号作为多命令分隔符,逗号无法被识别。修改请求内容为:
    $request->content("command='term length 0; sh log'");
    
  • URL编码命令内容:若设备API要求严格的URL编码,需将分号转义为%3B,可借助URI::Escape模块处理:
    use URI::Escape;
    my $cmd = uri_escape("term length 0; sh log");
    $request->content("command='$cmd'");
    
  • 分两次发送命令(保持会话):部分设备的会话级设置(如term length 0)需单独执行后再发送查询命令,此时要通过cookie维持同一个HTTP会话:
    my $ua = LWP::UserAgent->new;
    $ua->cookie_jar({}); # 启用cookie保持会话
    
    # 先执行term length 0
    my $req1 = HTTP::Request->new('POST' => $url);
    $req1->content("command='term length 0'");
    $req1->protocol('HTTP/1.0');
    my $res1 = $ua->request($req1);
    
    # 再执行show log
    my $req2 = HTTP::Request->new('POST' => $url);
    $req2->content("command='sh log'");
    $req2->protocol('HTTP/1.0');
    my $response = $ua->request($req2);
    
    warn Dumper($response->content);
    
  • 修正代码拼写错误:代码中$respone为拼写错误,应改为$response,避免后续处理出现异常。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 00:22:03