如何使用 Mojo::UserAgent 的 connect_timeout
How to user Mojo::UserAgent's connect_timeout
这里是 Perl 新手。我有一行代码:
my $api_data = decode_json( $ua->get($url)->res->body );
其中 $ua = Mojo::UserAgent->new
。有时,请求可能会(无限期地)挂起,我想指定一个连接超时。
documentation 提供了一个示例,但我不确定如何将其正确地合并到我的陈述中。
在这种情况下我应该如何使用 connect_timeout
?我知道 Mojo 指定了默认连接超时值 (10),但我宁愿在代码中明确指定它。
documentation 表明 connect_timeout
可以用作 getter 和 setter:
my $timeout = $ua->connect_timeout; # getter
$ua = $ua->connect_timeout(5); # setter
setter returns 它调用的 Mojo::UserAgent 对象,以便它可以与其他方法链接。
所以你可以做:
my $ua = Mojo::UserAgent->new;
my $api_data = decode_json( $ua->connect_timeout(42)->get($url)->res->body );
但是你不需要链接方法,所以我推荐一个更具可读性的版本:
my $ua = Mojo::UserAgent->new;
$ua->connect_timeout(42);
my $api_data = decode_json( $ua->get($url)->res->body );
这里是 Perl 新手。我有一行代码:
my $api_data = decode_json( $ua->get($url)->res->body );
其中 $ua = Mojo::UserAgent->new
。有时,请求可能会(无限期地)挂起,我想指定一个连接超时。
documentation 提供了一个示例,但我不确定如何将其正确地合并到我的陈述中。
在这种情况下我应该如何使用 connect_timeout
?我知道 Mojo 指定了默认连接超时值 (10),但我宁愿在代码中明确指定它。
documentation 表明 connect_timeout
可以用作 getter 和 setter:
my $timeout = $ua->connect_timeout; # getter
$ua = $ua->connect_timeout(5); # setter
setter returns 它调用的 Mojo::UserAgent 对象,以便它可以与其他方法链接。
所以你可以做:
my $ua = Mojo::UserAgent->new;
my $api_data = decode_json( $ua->connect_timeout(42)->get($url)->res->body );
但是你不需要链接方法,所以我推荐一个更具可读性的版本:
my $ua = Mojo::UserAgent->new;
$ua->connect_timeout(42);
my $api_data = decode_json( $ua->get($url)->res->body );