NAME
HTTP::API::Client - API Client
USAGE
use HTTP::API::Client;
my $ua1 = HTTP::API::Client->new;
my $ua2 = HTTP::API::Client->new(base_url => URI->new( $url ), pre_deinfed_headers => { X_COMPANY => 'ABC LTD' } );
my $ua3 = HTTP::API::Client->new(base_url => URI->new( $url ), pre_defined_data => { api_key => 123 } );
$ua->send( $method, $url, \%data, \%header );
Send short hand methods - get, post, head, put and delete
Example:
$ua->get( $url ) same as $ua->send( GET, $url );
$ua->post( $url, \%data, \%headers ) same as $ua->send( GET, $url, \%data, \%headers );
Get Json Data - grab the content body from the response and json decode
$ua = HTTP::API::Client->new(base_url => URI->new("http://google.com"));
$ua->get("/search" => { q => "something" });
my $hashref_from_decoded_json_string = $ua->json_response;
## ps. this is just an example to get json from a rest api
Send a query string to server
$ua = HTTP::API::Client->new( content_type => "application/x-www-form-urlencoded" );
$ua->post("http://google.com", { q => "something" });
my $response = $ua->last_response; ## is a HTTP::Response object
At the moment, only support query string and json data in and out
ENVIRONMENT VARIABLES
These enviornment variables expose the controls without changing the existing code.
HTTP VARIABLES
HTTP_USERNAME - basic auth username
HTTP_PASSWORD - basic auth password
HTTP_AUTH_TOKEN - basic auth token string
HTTP_CHARSET - content type charset. default utf8
HTTP_TIMEOUT - timeout the request for ??? seconds. default 60 seconds.
SSL_VERIFY - verify ssl url. default is off
DEBUG VARIABLES
DEBUG_IN_OUT - print out request and response in string to STDERR
DEBUG_SEND_OUT - print out request in string to STDERR
DEBUG_RESPONSE - print out response in string to STDERR
DEBUG_RESPONSE_HEADER_ONLY - print out response header only without the body
DEBUG_RESPONSE_IF_FAIL - only print out response in string if fail.
RETRY VARIABLES
RETRY_FAIL_RESPONSE - number of time to retry if resposne comes back is failed. default 0 retry
RETRY_FAIL_STATUS - only retry if specified status code. e.g. 500,404
RETRY_DELAY - retry with wait time of ??? seconds in between