【问题标题】:Is there a way to set connection timeout of XML::LibXML->load_html( location => $url)有没有办法设置 XML::LibXML->load_html(location => $url) 的连接超时
【发布时间】:2020-06-29 05:42:53
【问题描述】:

我的网络非常糟糕。我想调整 XML::LibXML 的连接超时有什么办法吗?还是我需要先用 LWP 加载 html ?

my $doc = XML::LibXML->load_html( location => $url, recover => 2 );

【问题讨论】:

  • 超时参数不是Perl设置的,它在C库libxml2里面。顺便说一句,C 模块似乎只能获取 http(不是 https 协议)。所以我认为你需要先使用 Perl 模块LWP::UserAgent 来获取 html 页面
  • Here是对设置超时参数的源码的引用。

标签: perl libxml2 xml-libxml


【解决方案1】:

就个人而言,我会使用Mojo::UserAgent

#!/usr/bin/env perl
use strict;
use warnings;

use  Mojo::UserAgent;
use XML::LibXML;

my $url = "https://www.w3schools.com/xml/cd_catalog.xml";
my $ua = Mojo::UserAgent->new();
$ua->max_redirects(0)->connect_timeout(3)->request_timeout(5);

my $xml = $ua->get( $url )->result->body;
my $doc = XML::LibXML->load_xml( string => $xml );


print $doc->toString();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 2020-11-24
    • 2010-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-13
    相关资源
    最近更新 更多