NAME

WWW::Kickstarter::HttpClient - HTTP client connector for WWW::Kickstarter

SYNOPSIS

use WWW::Kickstarter;

my $ks = WWW::Kickstarter->new(
   http_client_class => 'WWW::Kickstarter::HttpClient::Lwp',   # default
   ...
);

DESCRIPTION

This module documents the interface that must be provided by HTTP clients to be used by WWW::Kickstarter.

CONSTRUCTOR

new

my $http_client = $http_client_class->new(%opts);

The constructor. An WWW::Kickstarter::Error object is thrown on error.

Options:

  • agent => "application_name/version "

    The string to pass to Kickstarter in the User-Agent HTTP header. If the string ends with a space, the name and version of this library will be appended, as will the name of version of the underling HTTP client.

METHODS

request

my ( $status_code, $status_line, $content_type, $content_encoding, $content ) =
   $http_client->request($method, $url, $req_content);

Performs an HTTP request for the URL specified by $url using the method specified by $method (either GET or POST). For POST requests, $req_content will contain the content (of type application/x-www-form-urlencoded) to send in the request.

An Accept header with value application/json; charset=utf-8 must be provided.

The following are returned: The HTTP status code received from the server ($status), the status line including the HTTP status code ($status_line), the type of the content of the response ($content_type), the character encoding of the content ($content_encoding), and the content of the response ($content).

If a communication failure occurs, appropriate values for $status and $status_line should be mocked up, such as 599 and 599 Can't connect to api.kickstarter.com.

The value returned for $content_type must be in lower-case letters and devoid of parameters. undef can be returned for $content_type, and it need not be lower-case. For example, $content_type will be text/html and $content_encoding can be UTF-8 for Text/HTML; charset=UTF-8.

VERSION, BUGS, KNOWN ISSUES, SUPPORT, AUTHORS, COPYRIGHT & LICENSE

See WWW::Kickstarter