2014-10-31 3 views
2

Я пытаюсь настроить учетные данные с помощью LWP :: UserAgent, но я не могу войти в систему. $username, $passwd верны. Я не понимаю, что мне следует положить в 3rd argument (согласно dos $realm, здесь Authentication). Вот фрагмент кода:LWP :: UserAgent и учетные данные для входа

my $browser = LWP::UserAgent->new(agent => 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.0.5) Gecko/20060719 Firefox/31.2.0', 
$browser->credentials("domain.com:80", "Authentication",$username, $passwd); 
my $response=$browser->get("http://domain.com/page"); 

print $response->content; 
+0

Соответствует ли «Царство» тому, что просит сервер? Если вы выполняете учетные данные ($ username, $ passwd), 'это работает? – Sobrique

+0

@Sobrique Это моя проблема ... Я сказал, что не знаю, что мне там делать ... credentials ($ username, $ passwd) не работает. – user897237

+3

Закройте браузер и откройте его снова. Перейдите в 'http: // domain.com/page'. Если сайт использует базовую аутентификацию, вы должны получить всплывающее окно с надписью: «Имя пользователя и пароль запрашиваются по адресу http://domain.com. Сайт говорит: «foo bar» '. В этом случае 'foo bar' является сферой. – ThisSuitIsBlackNot

ответ

3

я исправил область, как @ThisSuitIsBlackNot предложил:

Close your browser and reopen it. Navigate to http://domain.com/page. 
If the site is using basic authentication, 
you should get a popup that says something like 
A username and password are being requested by 
http://domain.com. The site says: "foo bar". 
In this case, foo bar is the realm. 

Тогда я был в состоянии войти, но страницы были пусты. Итак, я добавил файл cookie:

$browser->cookie_jar({ file => ".mycookies.txt" }); 
+0

Не нужно использовать отдельный браузер. Если у вас установлен LWP, у вас, вероятно, есть скрипты 'GET' и' HEAD'. Сделайте 'HEAD' против защищенного ресурса, вы получите приглашение' Enter username for ** realm ** на ** host **: ** port **: '. – david

Смежные вопросы