새로운 질문 :펄 LWP 밀접한 관계를 수동으로
나는 내 펄 스크립트와 함께 다음과 같은 일을 해요 : 세션을 종료 할 수있는 방법이
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
내 스크립트를 여러 번 연속적으로 실행하고 잠시 후 서버에 열린 세션이있다.
미리 답변 해 주셔서 감사합니다.
내가 https://metacpan.org/module/GAAS/libwww-perl-6.05/lib/LWP/UserAgent.pm을 끌어와 "연결"을 검색합니다. 첫 번째 히트는 keep_alive와 연결 캐시에 대해 언급합니다. 나는 느낌이있다, 이것은 도움이 될지도 모른다. – innaM
스크립트가 아직 실행 중입니까? 내가 아는 한, LWP :: UA는 새로운 생성자에 대한 옵션 해시를 명시 적으로 요청하지 않으면 영구 연결을 유지하지 않습니다. 스크립트가 리눅스에서 돌아가고 있다고 가정하고,'netstat -lnp | grep 8080'을보고 a) 포트 8080에 연결된 perl/script 프로세스가 있고 b) 소켓의 상태가 어떨지 확인하십시오. (CLOSE_WAIT, CONNECTED 등). –
감사합니다. 나는 이것이 HTTP 기본 인증 문제 일 수 있다고 생각하니? AFAIK 기본 인증은 "로그 아웃"을 지원하지 않습니다. 필자의 가정은 perl의 종료가 연결을 끊을 것이지만 나는 틀렸다. 또한 이것은 Windows 컴퓨터에서 실행 중입니다. 나는 그것이 기본 URL에 대한 간단한 GET이 세션을 열어 두지 않기 때문에 HTTP 기본 인증과 관련이 있다고 확신한다. 그에 따라 내 게시물을 편집했습니다. 이론적으로 이것은 – user2236021