ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/AnyEvent-HTTP/HTTP.pm
(Generate patch)

Comparing AnyEvent-HTTP/HTTP.pm (file contents):
Revision 1.95 by root, Wed Jan 12 03:30:05 2011 UTC vs.
Revision 1.101 by root, Wed Feb 16 16:34:34 2011 UTC

46use AnyEvent::Util (); 46use AnyEvent::Util ();
47use AnyEvent::Handle (); 47use AnyEvent::Handle ();
48 48
49use base Exporter::; 49use base Exporter::;
50 50
51our $VERSION = '2.02'; 51our $VERSION = '2.03';
52 52
53our @EXPORT = qw(http_get http_post http_head http_request); 53our @EXPORT = qw(http_get http_post http_head http_request);
54 54
55our $USERAGENT = "Mozilla/5.0 (compatible; U; AnyEvent-HTTP/$VERSION; +http://software.schmorp.de/pkg/AnyEvent)"; 55our $USERAGENT = "Mozilla/5.0 (compatible; U; AnyEvent-HTTP/$VERSION; +http://software.schmorp.de/pkg/AnyEvent)";
56our $MAX_RECURSE = 10; 56our $MAX_RECURSE = 10;
529 while ( 529 while (
530 m{ 530 m{
531 \G\s* 531 \G\s*
532 (?: 532 (?:
533 expires \s*=\s* ([A-Z][a-z][a-z]+,\ [^,;]+) 533 expires \s*=\s* ([A-Z][a-z][a-z]+,\ [^,;]+)
534 | ([^=;,[:space:]]+) (?: \s*=\s* (?: "((?:[^\\"]+|\\.)*)" | ([^=;,[:space:]]*) ) )? 534 | ([^=;,[:space:]]+) (?: \s*=\s* (?: "((?:[^\\"]+|\\.)*)" | ([^;,[:space:]]*) ) )?
535 ) 535 )
536 }gcxsi 536 }gcxsi
537 ) { 537 ) {
538 my $name = $2; 538 my $name = $2;
539 my $value = $4; 539 my $value = $4;
713 713
714 my $proxy = $arg{proxy} || $PROXY; 714 my $proxy = $arg{proxy} || $PROXY;
715 my $timeout = $arg{timeout} || $TIMEOUT; 715 my $timeout = $arg{timeout} || $TIMEOUT;
716 716
717 my ($uscheme, $uauthority, $upath, $query, undef) = # ignore fragment 717 my ($uscheme, $uauthority, $upath, $query, undef) = # ignore fragment
718 $url =~ m|(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:(\?[^#]*))?(?:#(.*))?|; 718 $url =~ m|^([^:]+):(?://([^/?#]*))?([^?#]*)(?:(\?[^#]*))?(?:#(.*))?$|;
719 719
720 $uscheme = lc $uscheme; 720 $uscheme = lc $uscheme;
721 721
722 my $uport = $uscheme eq "http" ? 80 722 my $uport = $uscheme eq "http" ? 80
723 : $uscheme eq "https" ? 443 723 : $uscheme eq "https" ? 443
1332This section contaisn some more elaborate "real-world" examples or code 1332This section contaisn some more elaborate "real-world" examples or code
1333snippets. 1333snippets.
1334 1334
1335=head2 HTTP/1.1 FILE DOWNLOAD 1335=head2 HTTP/1.1 FILE DOWNLOAD
1336 1336
1337Downloading files with HTTP cna be quite tricky, especially when something 1337Downloading files with HTTP can be quite tricky, especially when something
1338goes wrong and you want tor esume. 1338goes wrong and you want to resume.
1339 1339
1340Here is a function that initiates and resumes a download. It uses the 1340Here is a function that initiates and resumes a download. It uses the
1341last modified time to check for file content changes, and works with many 1341last modified time to check for file content changes, and works with many
1342HTTP/1.0 servers as well, and usually falls back to a complete re-download 1342HTTP/1.0 servers as well, and usually falls back to a complete re-download
1343on older servers. 1343on older servers.

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines