GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Acme::HTTP(3) User Contributed Perl Documentation Acme::HTTP(3)

Acme::HTTP - High-level access to Net::HTTP::NB and Net::HTTPS::NB

    use Acme::HTTP;

    # you can use http:
    my $url = "http://perldoc.perl.org/perlfaq5.html";

    # ...or, alternatively, use https:
    #  $url = "https://metacpan.org/pod/Data::Dumper";

    set_redir_max(3); # Max. number of redirections
    set_timeout(10);  # Timeout in seconds

    my $obj = Acme::HTTP->new($url) || die $@;

    my $code = get_code();
    my $msg  = get_message();

    if ($code eq '404') {
        die "Page '$url' not found";
    }
    elsif ($code ne '200') {
        die "Page '$url' - Error $code, Msg '$msg'";
    }

    print "Orig url     = ", $url, "\n";
    print "Real url     = ", get_url_act(), "\n";
    print "Redirections = ", get_redir_act(), "\n";
    print "Length       = ", get_response()->{'Content-Length'} // 0, "\n";
    print "\n";

    while (1) {
        my $n = $obj->read_entity_body(my $buf, 4096);
        die "read failed: $@" unless defined $n;
        last unless $n;

        print $buf;
    }

The following parameters can be set in advance:
set_redir_max($count)
Set the maximum number of redirections
set_timeout($sec)
Set the timout in seconds

The following variables are available read-only after new():
get_url_act()
returns the actual url after redirection
get_redir_act()
returns the actual number of redirection that have taken place
get_code()
returns the HTTP status
get_message()
returns the HTTP message
get_response()
returns a hash-reference of the response variables

In case of a successful new(), the subroutines get_code() and get_message() are usually set as follows:

  get_code()    => '200'
  get_message() => 'OK'

However, a non-existing address would typically return different values:

  get_code()    => '404'
  get_message() => 'Not Found'

Here is one sample result of get_response() of an MP3 file:

  'Content-Type'   => 'audio/mpeg'
  'Content-Length' => '28707232'
  'Date'           => 'Sun, 17 Aug 2014 10:53:43 GMT'
  'Last-Modified'  => 'Thu, 10 Jul 2014 04:52:52 GMT'
  'Accept-Ranges'  => 'bytes'
  'Connection'     => 'close'

  'Cache-Control'  => 'max-age=2269915'
  'ETag'           => '"1404967972"'
  'X-HW'           => '1408272823.dop...pa1.c'

...and here is another example result of get_esponse() of a web page:

  'Content-Type'   => 'text/html; charset=utf-8'
  'Content-Length' => '31569'
  'Date'           => 'Sun, 17 Aug 2014 11:02:54 GMT'
  'Last-Modified'  => 'Thu, 24 Jul 2014 03:31:45 GMT'
  'Accept-Ranges'  => 'bytes'
  'Connection'     => 'close'

  'Age'            => '0'
  'Set-Cookie'     => '...expires=12-Sep-2031...; secure',
  'Server'         => 'nginx/0.7.67',
  'Vary'           => 'Accept-Encoding,Cookie'
  'Via'            => '1.1 varnish',
  'X-Cache'        => 'MISS, MISS',
  'X-Cache-Hits'   => '0, 0',
  'X-Runtime'      => '0.479137'
  'X-Served-By'    => 'cache-lo80-LHR, cache-fra1222-FRA',

Klaus Eichner <klaus03@gmail.com>

Copyright (C) 2014 by Klaus Eichner

All rights reserved. This program is free software; you can redistribute it and/or modify it under the terms of the artistic license 2.0, see http://www.opensource.org/licenses/artistic-license-2.0.php

2014-12-28 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.