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.3 by root, Wed Jun 4 11:58:36 2008 UTC vs.
Revision 1.6 by root, Wed Jun 4 12:05:45 2008 UTC

52=item http_get $url, key => value..., $cb->($data, $headers) 52=item http_get $url, key => value..., $cb->($data, $headers)
53 53
54Executes an HTTP-GET request. See the http_request function for details on 54Executes an HTTP-GET request. See the http_request function for details on
55additional parameters. 55additional parameters.
56 56
57=item http_head $url, key => value..., $cb->($data, $headers)
58
59Executes an HTTP-HEAD request. See the http_request function for details on
60additional parameters.
61
57=item http_get $url, $body, key => value..., $cb->($data, $headers) 62=item http_post $url, $body, key => value..., $cb->($data, $headers)
58 63
59Executes an HTTP-POST request with a requets body of C<$bod>. See the 64Executes an HTTP-POST request with a requets body of C<$bod>. See the
60http_request function for details on additional parameters. 65http_request function for details on additional parameters.
61 66
62=item http_request $method => $url, key => value..., $cb->($data, $headers) 67=item http_request $method => $url, key => value..., $cb->($data, $headers)
74name. 79name.
75 80
76If an internal error occurs, such as not being able to resolve a hostname, 81If an internal error occurs, such as not being able to resolve a hostname,
77then C<$data> will be C<undef>, C<< $headers->{Status} >> will be C<599> 82then C<$data> will be C<undef>, C<< $headers->{Status} >> will be C<599>
78and the C<Reason> pseudo-header will contain an error message. 83and the C<Reason> pseudo-header will contain an error message.
84
85A typical callback might look like this:
86
87 sub {
88 my ($body, $hdr) = @_;
89
90 if ($hdr->{Status} =~ /^2/) {
91 ... everything should be ok
92 } else {
93 print "error, $hdr->{Status} $hdr->{Reason}\n";
94 }
95 }
79 96
80Additional parameters are key-value pairs, and are fully optional. They 97Additional parameters are key-value pairs, and are fully optional. They
81include: 98include:
82 99
83=over 4 100=over 4
241 } 258 }
242 259
243 substr $_, 0, 1, "" 260 substr $_, 0, 1, ""
244 for values %hdr; 261 for values %hdr;
245 262
246 if ($method ne "HEAD") { 263 if ($method eq "HEAD") {
264 %state = ();
265 $cb->(undef, \%hdr);
266 } else {
247 if (exists $hdr{"content-length"}) { 267 if (exists $hdr{"content-length"}) {
248 $_[0]->unshift_read (chunk => $hdr{"content-length"}, sub { 268 $_[0]->unshift_read (chunk => $hdr{"content-length"}, sub {
249 # could cache persistent connection now 269 # could cache persistent connection now
250 if ($hdr{connection} =~ /\bkeep-alive\b/i) { 270 if ($hdr{connection} =~ /\bkeep-alive\b/i) {
251 # but we don't, due to misdesigns, this is annoyingly complex 271 # but we don't, due to misdesigns, this is annoyingly complex
277sub http_get($$;@) { 297sub http_get($$;@) {
278 unshift @_, "GET"; 298 unshift @_, "GET";
279 &http_request 299 &http_request
280} 300}
281 301
302sub http_head($$;@) {
303 unshift @_, "HEAD";
304 &http_request
305}
306
282sub http_post($$$;@) { 307sub http_post($$$;@) {
283 unshift @_, "POST", "body"; 308 unshift @_, "POST", "body";
284 &http_request 309 &http_request
285} 310}
286 311

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines