in reply to LWP Authorization Problem
1. Use the credentials method of the LWP::UserAgent object:
$ua->credentials($netloc, $realm, $uname, $pass)
Eg: Say your URL is http://www.somesite.com/page.html and when you try this with your browser, it pops up a box saying 'Enter username and password for XYZ'.
$netloc in this example is 'www.somesite.com' and $realm in this case is 'XYZ'.
2. Call the authorization_basic method of your HTTP::Request object before passing it to the LWP::UserAgent's request method:
$request->authorization_basic($uname, $pass);
If you use method 1, the LWP::UserAgent will send one request which the server will reject with a 401 error. One of the headers in the 401 response will be the realm. The LWP::UserAgent will then look up it's internal table (populated by your calls to credentials) to find a matching netloc and realm. If this lookup returns a username and password, the LWP::UserAgent will resend the request with a basic authorization header.
The second method allows you to set the username and password before making the initial request - assuming you supply the right credentials there will be no 401 error. There is no need to specify netloc and realm, as they are only used by the LWP::UserAgent's lookup routine.
'perldoc LWP::UserAgent' will tell you more about 1
'perldoc HTTP::Message' will tell you more about 2 (HTTP::Request is derived from HTTP::Message).
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Re: LWP Authorization Problem
by gr0f (Acolyte) on Jul 24, 2001 at 22:42 UTC | |
by RatArsed (Monk) on Jul 25, 2001 at 13:40 UTC |