Piers Harding > HTTP-MHTTP > HTTP::MHTTP

Download:
HTTP-MHTTP-0.15.tar.gz

Dependencies

Annotate this POD

CPAN RT

New  3
Open  0
View/Report Bugs
Module Version: 0.15   Source  

NAME ^

HTTP::MHTTP - this library provides reasonably low level access to the HTTP protocol, for perl. This does not replace LWP (what possibly could :-) but is a cut for speed. It also supports all of HTTP 1.0, so you have GET, POST, PUT, HEAD, and DELETE. Some support of HTTP 1.1 is available - sepcifically Transfer-Encoding = chunked and the Keep-Alive extensions.

Additionally - rudimentary SSL support can be compiled in. This effectively enables negotiation of TLS, but does not validate the certificates.

SYNOPSIS ^

 use HTTP::MHTTP;
 
 http_init();
 
 http_add_headers(
               'User-Agent' => 'DVSGHTTP1/1',
               'Accept-Language' => 'en-gb',
               'Connection' => 'Keep-Alive',
                   );
 if (http_call("GET", "http://localhost")){
   if (http_status() == 200 ){
     print http_response();
   } else {
     print "MSG: ".http_reason();
   }
 } else {
   print "call failed \n";
 }

DESCRIPTION ^

A way faster http access library that uses C extension based on mhttp to do the calls.

http_init()

initialise the mhttp library - must be called once to reset all internals, use http_reset() if you don't need to reset your headers before the next call.

http_set_protocol()

  http_set_protocol(1);  # now operating in HTTP 1.1 mode

Set the protocol level to use - either HTTP 1.0 or 1.1 by passing 0 or 1 - the default is 0 (HTTP 1.0).

http_reset()

reset the library internals for everything except the headers specified previously, and the debug switch. Call http_init() if you need to reset everything.

switch_debug()

  switch_debug(<0 || 1>)

Toggle the internal debugging on and off by passing either > 1 or 0.

http_add_headers()

  http_add_headers(
                 'User-Agent' => 'HTTP-MHTTP1/0',
                 'Host' => 'localhost',
                 'Accept-Language' => 'en-gb',
                );

pass in header/value pairs that will be set on the next http_call().

http_body()

  http_body("this is the body");

Set the body of the next request via http_call().

http_call()

  my $rc = http_call("GET", "http://localhost");

Do an http request. Returns either < 0 or 1 depending on whether the call was successful - remember to still check the http_status() code though.

Value < 0 are: -1 : an invalid action (HTTP verb) was supplied -2 : must supply an action (HTTP verb) -3 : must supply a url -4 : url must start with http:// or https:// -5 : write of headers to socket failed -6 : write of data to socket was short -7 : failed to write last line to socket -8 : something wrong with the Conent-Length header -11 : SSL_CTX_new failed - abort everything -12 : SSL_new failed - abort everything -13 : SSL_connect failed - abort everything -14 : SSL_get_peer_certificate failed - abort everything -15 : X509_get_subject_name failed - abort everything -16 : X509_get_issuer_name failed - abort everything -17 : cant find the next chunk for Transfer-encoding -18 : cant find end headers -19 : You must supply a Host header for HTTP/1.1

http_status()

Returns the last status code.

http_reason()

Returns the last reason code.

http_headers()

Returns the headers of the last call, as a single string.

http_split_headers()

Returns the split out array ref of array ref header value pairs of the last call. [ [ hdr, val], [hdr, val] ... ]

http_response_length()

Returns the length of the body of the last call.

http_response()

Returns the body of the last call.

basic_authorization()

  my $pass = basic_authorization($user, $password);

Construct the basic authorization value to be passed in an "Authorization" header.

COPYRIGHT ^

Copyright (c) 2003, Piers Harding. All Rights Reserved. This module is free software. It may be used, redistributed and/or modified under the same terms as Perl itself.

AUTHOR ^

Piers Harding, piers@ompa.net.

SEE ALSO ^

perl(1)

syntax highlighting: