HTTP::API::Client - API Client
use HTTP::API::Client; my $ua1 = HTTP::API::Client->new; my $ua2 = HTTP::API::Client->new(base_url => URI->new( $url ), pre_defined_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
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
To install HTTP::API::Client, copy and paste the appropriate command in to your terminal.
cpanm
cpanm HTTP::API::Client
CPAN shell
perl -MCPAN -e shell install HTTP::API::Client
For more information on module installation, please visit the detailed CPAN module installation guide.