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.105 by root, Tue May 10 12:33:51 2011 UTC vs.
Revision 1.110 by root, Fri Feb 10 01:26:59 2012 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.11'; 51our $VERSION = '2.13';
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;
384 384
385Example: do a HTTP HEAD request on https://www.google.com/, use a 385Example: do a HTTP HEAD request on https://www.google.com/, use a
386timeout of 30 seconds. 386timeout of 30 seconds.
387 387
388 http_request 388 http_request
389 GET => "https://www.google.com", 389 HEAD => "https://www.google.com",
390 headers => { "user-agent" => "MySearchClient 1.0" }, 390 headers => { "user-agent" => "MySearchClient 1.0" },
391 timeout => 30, 391 timeout => 30,
392 sub { 392 sub {
393 my ($body, $hdr) = @_; 393 my ($body, $hdr) = @_;
394 use Data::Dumper; 394 use Data::Dumper;
962 my $body = ""; 962 my $body = "";
963 my $on_body = $arg{on_body} || sub { $body .= shift; 1 }; 963 my $on_body = $arg{on_body} || sub { $body .= shift; 1 };
964 964
965 $state{read_chunk} = sub { 965 $state{read_chunk} = sub {
966 $_[1] =~ /^([0-9a-fA-F]+)/ 966 $_[1] =~ /^([0-9a-fA-F]+)/
967 or $finish->(undef, $ae_error => "Garbled chunked transfer encoding"); 967 or return $finish->(undef, $ae_error => "Garbled chunked transfer encoding");
968 968
969 my $len = hex $1; 969 my $len = hex $1;
970 970
971 if ($len) { 971 if ($len) {
972 $cl += $len; 972 $cl += $len;
1138 if ($persistent && $KA_CACHE{$ka_key}) { 1138 if ($persistent && $KA_CACHE{$ka_key}) {
1139 $was_persistent = 1; 1139 $was_persistent = 1;
1140 1140
1141 $state{handle} = ka_fetch $ka_key; 1141 $state{handle} = ka_fetch $ka_key;
1142 $state{handle}->destroyed 1142 $state{handle}->destroyed
1143 and die "got a destructed habndle. pah\n";#d# 1143 and die "AnyEvent::HTTP: unexpectedly got a destructed handle (1), please report.";#d#
1144 $prepare_handle->(); 1144 $prepare_handle->();
1145 $state{handle}->destroyed 1145 $state{handle}->destroyed
1146 and die "got a destructed habndle. pa2\n";#d# 1146 and die "AnyEvent::HTTP: unexpectedly got a destructed handle (2), please report.";#d#
1147 $handle_actual_request->(); 1147 $handle_actual_request->();
1148 $state{handle}->destroyed
1149 and die "got a destructed habndle. pa3\n";#d#
1150 1148
1151 } else { 1149 } else {
1152 my $tcp_connect = $arg{tcp_connect} 1150 my $tcp_connect = $arg{tcp_connect}
1153 || do { require AnyEvent::Socket; \&AnyEvent::Socket::tcp_connect }; 1151 || do { require AnyEvent::Socket; \&AnyEvent::Socket::tcp_connect };
1154 1152
1255 1253
1256The default value for the C<recurse> request parameter (default: C<10>). 1254The default value for the C<recurse> request parameter (default: C<10>).
1257 1255
1258=item $AnyEvent::HTTP::TIMEOUT 1256=item $AnyEvent::HTTP::TIMEOUT
1259 1257
1260The default timeout for conenction operations (default: C<300>). 1258The default timeout for connection operations (default: C<300>).
1261 1259
1262=item $AnyEvent::HTTP::USERAGENT 1260=item $AnyEvent::HTTP::USERAGENT
1263 1261
1264The default value for the C<User-Agent> header (the default is 1262The default value for the C<User-Agent> header (the default is
1265C<Mozilla/5.0 (compatible; U; AnyEvent-HTTP/$VERSION; +http://software.schmorp.de/pkg/AnyEvent)>). 1263C<Mozilla/5.0 (compatible; U; AnyEvent-HTTP/$VERSION; +http://software.schmorp.de/pkg/AnyEvent)>).
1386 1384
1387 warn stat $fh; 1385 warn stat $fh;
1388 warn -s _; 1386 warn -s _;
1389 if (stat $fh and -s _) { 1387 if (stat $fh and -s _) {
1390 $ofs = -s _; 1388 $ofs = -s _;
1391 warn "-s is ", $ofs;#d# 1389 warn "-s is ", $ofs;
1392 $hdr{"if-unmodified-since"} = AnyEvent::HTTP::format_date +(stat _)[9]; 1390 $hdr{"if-unmodified-since"} = AnyEvent::HTTP::format_date +(stat _)[9];
1393 $hdr{"range"} = "bytes=$ofs-"; 1391 $hdr{"range"} = "bytes=$ofs-";
1394 } 1392 }
1395 1393
1396 http_get $url, 1394 http_get $url,

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines