me trató de ejecutar este programa perl5:LWP :: agente de usuario de autenticación básica HTTP
#!/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;
Por otro lado tengo 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);
}
y que sólo se imprime:
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
Así que vemos que LWP :: agente de usuario no envía HTTP de autenticación básica, pero no sé qué.
he visto algunos post en este sitio web, pero tienen el mismo código básico, y no lo hace trabajo ...
Si uso HTTP :: Solicitud entonces funciona:
my $req = GET 'http://test.server.com:39272/';
$req->authorization_basic('my_id', 'my_pass');
my $res = $ua->request($req);
Salidas:
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
¿he hecho algo mal antes?
¿Recibió una respuesta 401 que solicita autenticación básica? ¿Conociste el reino, verdad? Muestre la cadena de solicitud-respuesta, no solo la solicitud. – ikegami
Bueno, puse el código para solicitud y respuesta. Y obtuve una respuesta 401. No entiendo sobre la cuestión del reino, no veo cómo eso es importante. – XoR
Lo sé ahora, tengo que devolver WWW-Authenticate: Basic realm = "Área segura", entonces LWP :: UserAgent funcionará, ¿verdad? – XoR