Chris Prather > HTTP-Thin-UserAgent-0.007 > HTTP::Thin::UserAgent

Download:
HTTP-Thin-UserAgent-0.007.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 0.007   Source   Latest Release: HTTP-Thin-UserAgent-0.009

NAME ^

HTTP::Thin::UserAgent - A Thin UserAgent around some useful modules.

VERSION ^

version 0.007

SYNOPSIS ^

    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';
            }
        }
    );

DESCRIPTION ^

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.

EXPORTS ^

http

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.

GET / PUT / POST

Exports from HTTP::Request::Common to make generating HTTP::Request objects easier.

scraper / process

Exports from Web::Scraper to assist in building scrapers for HTML documents.

Methods ^

HTTP::Thin::UserAgent::Client has the following methods.

response( )

Returns the HTTP::Response object returned by HTTP::Thin

as_json( $data )

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.

scraper( $scraper )

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.

decode( )

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).

tree( )

Returns a HTML::Treebuilder::XPath object.

find( $exp )

Takes a CSS or XPath expression and returns an arrayref of HTML::Treebuilder::XPath nodes.

on_error( $coderef )

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.

AUTHOR ^

Chris Prather <chris@prather.org>

COPYRIGHT AND LICENSE ^

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.

syntax highlighting: