Avatar billede sharpe Nybegynder
27. maj 2003 - 15:14 Der er 1 kommentar

WWW-Authentication

Hej,

Jeg vil gerne finde ud af, hvordan men skrive www-authentication i perl med både en socket og en LWP::agent. Jeg har en metod, som bruges i forbindelse med en socket "GET" request og en anden metod, der gøre det samme bare ved at anvende LWP::Agent i stedet. Hvis UID og PWD var begge to lige "sharpe", hvordan kunne jeg udvide de to nedenstående metoder med at tilføje www-authentication?

Mange tak!!

# SOCKET
sub do_request($$)
{
  my ($request, $host, $socket, $data);
  my %HEADERS;

  $request = shift();
  $host = shift();
  $socket = IO::Socket::INET->new(PeerAddr => $host,
                                  PeerPort => "http(80)",
                                  Proto => "tcp") || die($!);
  print($socket "GET $request http:\/\/HTTP\/1.0\nHost:  $host\nWWW-Authenticate: Basic realm="user:passwd"\n\r\n\r");
  while ($data = <$socket>)
  {
    chomp($data);
    if ($data =~ /^HTTP\/1\.\d\s(\d{3})/) {
      $HEADERS{_rc} = $1;
    } elsif ($data =~ /^([a-z0-9_-]+):\s*(.*)/i) {
      $HEADERS{$1} = $2;
    } else {
      last();
    }
  }
  shutdown($socket, 2);
  return %HEADERS;
}


# LWP::Agent
sub do_request($$)
{
  my ($arg, $host, $ua, $request, $response);
  $arg = shift();
  $host = shift();
   
  $ua = LWP::UserAgent->new(keep_alive => 1, timeout => 60);
  $request = HTTP::Request->new('GET', "http://$host$arg");
  $response = $ua->request($request);
       
  %RESPONSE = %{$response};
  return %RESPONSE;
}


På forhånd tak!
Mvh,
sharpe
Avatar billede mfalck Praktikant
28. maj 2003 - 14:25 #1
jeg mener at det letteste er at sætte dem foran http-requested, som



www.exampel.dk" target="_blank">http://user:password@www.exampel.dk ...
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester