ho cercato di eseguire questo programma perl5:LWP :: UserAgent autenticazione HTTP di base
#!/usr/bin/env perl
use strict;
use warnings;
use LWP;
my $ua = LWP::UserAgent->new('Mozilla');
$ua->credentials("test.server.com:39272", "realm-name", 'user_name', 'some_pass');
my $res = $ua->get('http://test.server.com:39272/');
print $res->content;
D'altra parte ho HTTP :: Daemon:
#!/usr/bin/env perl
use strict;
use warnings;
use HTTP::Daemon;
my $hd = HTTP::Daemon->new or die;
print "Contact URL: ", $hd->url, "\n";
while (my $hc = $hd->accept) {
while (my $hr = $hc->get_request) {
if ($hr->method eq 'GET') {
print $hr->as_string, "\n";
}
}
$hc->close;
undef($hc);
}
e semplicemente stampe:
Contact URL: http://test.server.com:39272/
GET/HTTP/1.1
Connection: TE, close
Host: test.server.com:39272
TE: deflate,gzip;q=0.3
User-Agent: libwww-perl/6.03
Quindi vedo che LWP :: UserAgent non invia l'autenticazione HTTP Basic, ma non so perché.
ho visto alcuni post su questo sito web, ma hanno lo stesso codice di base, e non lo fa lavoro ...
Se uso HTTP :: Richiesta allora funziona:
my $req = GET 'http://test.server.com:39272/';
$req->authorization_basic('my_id', 'my_pass');
my $res = $ua->request($req);
Uscite:
GET/HTTP/1.1
Connection: TE, close
Authorization: Basic bXlfaWQ6bXlfcGFzcw==
Host: test.server.com:39272
TE: deflate,gzip;q=0.3
User-Agent: libwww-perl/6.03
Ti ho fatto qualcosa di sbagliato prima?
Hai avuto una risposta che ha richiesto 401 autenticazione di base? Hai avuto il regno giusto? Mostra la catena richiesta-risposta, non solo la richiesta. – ikegami
Bene, metto il codice per richiesta e risposta. E ho ricevuto risposta 401. Non capisco la domanda del regno, non vedo come sia importante. – XoR
Ora so, ho bisogno di restituire WWW-Authenticate: Basic realm = "Secure Area", quindi LWP :: UserAgent funzionerà, giusto? – XoR