home *** CD-ROM | disk | FTP | other *** search
/ isnet Internet / Isnet Internet CD.iso / prog / hiz / 09 / 09.exe / adynware.exe / perl / lib / site / URI / URL / http.pm < prev    next >
Encoding:
Perl POD Document  |  1999-12-28  |  1.4 KB  |  60 lines

  1. package URI::URL::http;
  2. require URI::URL::_generic;
  3. @ISA = qw(URI::URL::_generic);
  4.  
  5. sub default_port { 80 }
  6.  
  7. require Carp;
  8.  
  9. *user     = \&URI::URL::bad_method;
  10. *password = \&URI::URL::bad_method;
  11.  
  12.  
  13. sub keywords;
  14. sub query_form;
  15. 1;
  16. __END__
  17.  
  18.  
  19. sub keywords {
  20.     my $self = shift;
  21.     $old = $self->{'query'};
  22.     if (@_) {
  23.     $self->equery(join('+', map { URI::Escape::uri_escape($_, $URI::URL::reserved) } @_));
  24.     return undef;
  25.     }
  26.     return undef unless defined $old;
  27.     Carp::croak("Query is not keywords") if $old =~ /=/;
  28.     map { URI::Escape::uri_unescape($_) } split(/\+/, $old);
  29. }
  30.  
  31. sub query_form {
  32.     my $self = shift;
  33.     $old = $self->{'query'};
  34.     if (@_) {
  35.     my @query;
  36.     my($key,$vals);
  37.         my $esc = $URI::URL::reserved . $URI::URL::unsafe;
  38.     while (($key,$vals) = splice(@_, 0, 2)) {
  39.         $key = '' unless defined $key;
  40.         $key =  URI::Escape::uri_escape($key, $esc);
  41.         $vals = [$vals] unless ref($vals) eq 'ARRAY';
  42.         my $val;
  43.         for $val (@$vals) {
  44.         $val = '' unless defined $val;
  45.         $val = URI::Escape::uri_escape($val, $esc);
  46.         push(@query, "$key=$val");
  47.         }
  48.     }
  49.     $self->equery(join('&', @query));
  50.     return undef;
  51.     }
  52.     return undef unless defined $old;
  53.     return () unless length $old;
  54.     Carp::croak("Query is not a form") unless $old =~ /=/;
  55.     map { s/\+/ /g; URI::Escape::uri_unescape($_) }
  56.      map { split(/=/, $_, 2)} split(/&/, $old);
  57. }
  58.  
  59. 1;
  60.