1

新问题:

我正在使用我的 Perl 脚本执行以下操作:

use strict;
use warnings;
use LWP 5.64;

my $browser = LWP::UserAgent->new();
$browser->credentials( 
'localhost:8080', 
'Tomcat Manager Application', 
'admin' => '123' 
);

my $app_url  = qq(http://localhost:8080/manager/list);
my $response = $browser->get( $app_url ); #this starts the Tomcat Manager Application
#do something
#end the tomcat manager application / terminate the session

有没有办法结束会话?我的 Manager 应用程序的默认会话超时为 30 分钟。我试过的是:

my $browser = LWP::UserAgent->new();
$browser->conn_cache(LWP::ConnCache->new());

但它仍然总是打开一个新会话。

我认为$browser->timeout在这里更改不是正确的方法,因为我需要在收到响应后终止会话。

任何帮助将不胜感激。


老问题:

有没有办法使用 LWP 手动结束我的会话?我有类似的东西:

use strict;
use warnings;
use LWP 5.64;

my $app_url = 'htpp://localhost:8080/manager/list'
my $base_url = 'http://localhost:8080'

my $browser = LWP::UserAgent->new;
$browser->credentials( 
 'localhost:8080/manager/list',
 'Tomcat Manager Application', 
 'admin' => '123' 
);

my $response = $browser->get( $base_url ); #session does not remain open
my $respuesta = $browser->get( $app_url ); #session remains opened 
#do some processing
#and now close the connection

我想连续多次运行我的脚本,一段时间后我在服务器上打开了一百万个会话。

提前感谢您的任何回答。

4

2 回答 2

0

您可以为连接设置超时:

$browser->timeout([$secs])

默认情况下,超时为 180 秒。您可以指定较小的值,连接将更快地关闭。

于 2013-05-14T06:42:41.987 回答
0

试试这个:

my $response = $browser->get( $base_url ); #session does not remain open
my $respuesta = $browser->get( $app_url ); #session remains opened 
if($respuesta->is_success){
    #do some processing
    die "OK";
}
return 1;
于 2013-05-14T11:42:13.003 回答