… | |
… | |
46 | use AnyEvent::Util (); |
46 | use AnyEvent::Util (); |
47 | use AnyEvent::Handle (); |
47 | use AnyEvent::Handle (); |
48 | |
48 | |
49 | use base Exporter::; |
49 | use base Exporter::; |
50 | |
50 | |
51 | our $VERSION = '2.01'; |
51 | our $VERSION = '2.02'; |
52 | |
52 | |
53 | our @EXPORT = qw(http_get http_post http_head http_request); |
53 | our @EXPORT = qw(http_get http_post http_head http_request); |
54 | |
54 | |
55 | our $USERAGENT = "Mozilla/5.0 (compatible; U; AnyEvent-HTTP/$VERSION; +http://software.schmorp.de/pkg/AnyEvent)"; |
55 | our $USERAGENT = "Mozilla/5.0 (compatible; U; AnyEvent-HTTP/$VERSION; +http://software.schmorp.de/pkg/AnyEvent)"; |
56 | our $MAX_RECURSE = 10; |
56 | our $MAX_RECURSE = 10; |
… | |
… | |
546 | # quoted |
546 | # quoted |
547 | $value = $3; |
547 | $value = $3; |
548 | $value =~ s/\\(.)/$1/gs; |
548 | $value =~ s/\\(.)/$1/gs; |
549 | } |
549 | } |
550 | |
550 | |
551 | push @kv, lc $name, $value; |
551 | push @kv, @kv ? lc $name : $name, $value; |
552 | |
552 | |
553 | last unless /\G\s*;/gc; |
553 | last unless /\G\s*;/gc; |
554 | } |
554 | } |
555 | |
555 | |
556 | last unless @kv; |
556 | last unless @kv; |
… | |
… | |
1332 | This section contaisn some more elaborate "real-world" examples or code |
1332 | This section contaisn some more elaborate "real-world" examples or code |
1333 | snippets. |
1333 | snippets. |
1334 | |
1334 | |
1335 | =head2 HTTP/1.1 FILE DOWNLOAD |
1335 | =head2 HTTP/1.1 FILE DOWNLOAD |
1336 | |
1336 | |
1337 | Downloading files with HTTP cna be quite tricky, especially when something |
1337 | Downloading files with HTTP can be quite tricky, especially when something |
1338 | goes wrong and you want tor esume. |
1338 | goes wrong and you want tor esume. |
1339 | |
1339 | |
1340 | Here is a function that initiates and resumes a download. It uses the |
1340 | Here is a function that initiates and resumes a download. It uses the |
1341 | last modified time to check for file content changes, and works with many |
1341 | last modified time to check for file content changes, and works with many |
1342 | HTTP/1.0 servers as well, and usually falls back to a complete re-download |
1342 | HTTP/1.0 servers as well, and usually falls back to a complete re-download |