2013-02-22 12 views
0

GET 변수 (쿼리 문자열)가 포함 된 URL에 POST 요청을해야합니다.URL에서 GET 변수를 사용하여 POST 요청 보내기 (LWP :: UserAgent 사용)

my $ua = LWP::UserAgent->new; 
my $res = $ua->post('http://my.domain/index.pl?login=yes', { 
    username => $username, 
    password => $password 
}); 

my.domain/index.pl는 최대한 빨리 쿼리를 제거 할 때 어떤 요청을받을 수 있지만 않습니다

나는 다음 (가장 simepl/논리적 인 방법처럼 보이는)하지만이 작동하지 않습니다 시도 string "? login = yes"요청이 올바르게 작동하고 있습니다.

+1

"작동하지 않습니다"* 의미 *? 그 일이 일어나기를 기대하지 않거나하지 않을 것으로 예상되는 것은 무엇입니까? – ysth

+0

@Andy "Subclass" – darch

+0

@ysth 나는 appliaction가 전혀 대답하지 않았다고 생각했습니다. 그러나 나는 내 작업 전에 실행 된 포함 된 파일에서 "exit"명령을 놓쳤습니다. – storyteller

답변

2
my $res = $ua->post('http://my.domain/index.pl?login=yes', { 
    username => $username, 
    password => $password 
}); 

print $req->as_string();을 사용하여

use HTTP::Request::Common qw(POST); 

my $req = POST('http://my.domain/index.pl?login=yes', { 
    username => $username, 
    password => $password, 
}); 

my $res = $ua->request($req); 

아래로 비등, 당신은 당신이 그것을해야했다 정확하게 수행 볼 수 있습니다.

POST http://my.domain/index.pl?login=yes 
Content-Length: 35 
Content-Type: application/x-www-form-urlencoded 

password=PASSWORD&username=USERNAME 

문제는 다른 곳에서 발생합니다.

+0

당신이 옳았습니다. 그건 내 실수 였어, 그냥 바보 같은 구성 오류 서버 쪽. – storyteller