HTTP::Thin::UserAgent - A Thin UserAgent around some useful modules.
version 0.005
use HTTP::Thin::UserAgent; my $favorites = http(GET 'http://api.metacpan.org/v0/author/PERIGRIN?join=favorite')->as_json->decode; my $results = http(GET 'http://www.imdb.com/find?q=Kevin+Bacon')->scraper( scraper { process '.findResult', 'results[]' => scraper { process '.result_text', text => 'TEXT'; process '.result_text > a', link => '@href'; } } );
WARNING this code is still *alpha* quality. While it will work as advertised on the tin, API breakage will likely be common until things settle down a bit.
HTTP::Thin::UserAgent provides what I hope is a thin layer over HTTP::Thin. It exposes an functional API that hopefully makes writing HTTP clients easier. Right now it's in *very* alpha stage and really only helps for writing JSON clients. The intent is to expand it to be more generally useful but a JSON client was what I needed first.
HTTP::Thin::UserAgent
A function that returns a new HTTP::Thin::UserAgent::Client object, which does the actual work for the request. You pas in an HTTP::Request object.
HTTP::Thin::UserAgent::Client
Exports from HTTP::Request::Common to make generating HTTP::Request objects easier.
Exports from Web::Scraper to assist in building scrapers for HTML documents.
HTTP::Thin::UserAgent::Client has the following methods.
Returns the HTTP::Response object returned by HTTP::Thin
This sets the request up to use application/json and then adds a decoder to decode the HTTP::Response content. If data is passed in it will be encoded into JSON and supplied in as the request data.
application/json
Sets up the request to process the response through the Web::Scraper object supplied. It will return the data (if any) returned by the scraper object.
Returns the decoded content, currently we only support HTML (in which case we return scraped content) and JSON (in which case we decode the JSON using JSON::Any).
Returns a HTML::Treebuilder::XPath object.
Takes a CSS or XPath expression and returns an arrayref of HTML::Treebuilder::XPath nodes.
A code reference that if there is an error in fetching the HTTP response handles that error. $_ will be set to the error being handled.
$_
Chris Prather <chris@prather.org>
This software is copyright (c) 2013 by Chris Prather.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install HTTP::Thin::UserAgent, copy and paste the appropriate command in to your terminal.
cpanm
cpanm HTTP::Thin::UserAgent
CPAN shell
perl -MCPAN -e shell install HTTP::Thin::UserAgent
For more information on module installation, please visit the detailed CPAN module installation guide.