LWP::Curl(3)

NAME
LWP::Curl - LWP methods implementation with Curl engine

VERSION
Version 0.14

SYNOPSIS
  use LWP::Curl;

  my $lwpcurl = LWP::Curl->new();
  my $content = $lwpcurl->get('http://search.cpan.org','http://www.cpan.org');
  # get the page http://search.cpan.org passing with referer http://www.cpan.org

DESCRIPTION
LWP::Curl provides an interface similar to the LWP library, but is built on top of the Curl library. The simple LWP-style interface means you don't have to know anything about the underlying library.

Constructor

  new()
Creates and returns a new LWP::Curl object, hereafter referred to as the "lwpcurl".

    my $lwpcurl = LWP::Curl->new()

•   "timeout => sec"

    Set the timeout value in seconds. The default timeout value is 180 seconds, i.e. 3 minutes.

•   "headers => [0|1]"

    Show HTTP headers when return a content. The default is false '0'

•   "user_agent => 'agent86'"

    Set the user agent string. The default is 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)'

•   "followlocation => [0|1]"

    If true, the user-agent will honor HTTP 301 (redirect) status messages. The default is 1.

•   "auto_encode => [0|1]"

    If true, urls will be urlencoded for GET and POST requests. Default is 1.

•   "maxredirs => number"

    Set how many redirect requests will be honored by the user-agent. The default is 3.

•   "proxy => $proxyurl"

    Set the proxy in the constructor, $proxyurl will be like:
        http://myproxy.com:3128/
        http://username:password@proxy.com:3128/

      libcurl respects the environment variables http_proxy, ftp_proxy,
      all_proxy etc, if any of those are set. The $lwpcurl->proxy option does
      however override any possibly set environment variables.

METHODS

  $lwpcurl->get($url,$referer)
Get content of $url, passing $referer if defined.

    use LWP::Curl;
        my $referer = 'http://www.example.com';
        my $get_url = 'http://www.example.com/foo';
    my $lwpcurl = LWP::Curl->new();
        my $content = $lwpcurl->get($get_url, $referer);

The "get" method croak()'s if the request fails, so wrap an "eval" around it if you want to handle failure more elegantly.

  $lwpcurl->post($url,$hash_form,$referer)
POST the $hash_form fields in $url, passing $referer if defined:

  use LWP::Curl;

  my $lwpcurl = LWP::Curl->new();

  my $referer = 'http://www.examplesite.com/';
  my $post_url = 'http://www.examplesite.com/post/';

  my $hash_form = {
    'field1' => 'value1',
    'field2' => 'value2',
  }

  my $content = $lwpcurl->post($post_url, $hash_form, $referer);

  $lwpcurl->timeout($sec)
Set the timeout to use for all subsequent requests, in seconds. Defaults to 180 seconds.

  $lwpcurl->auto_encode($value)
Turn on/off auto_encode.

  $lwpcurl->agent_alias($alias)
Sets the user agent string to the expanded version from a table of actual user strings. $alias can be one of the following:

•   Windows IE 6

•   Windows Mozilla

•   Mac Safari

•   Mac Mozilla

•   Linux Mozilla

•   Linux Konqueror

then it will be replaced with a more interesting one. For instance,

  $lwpcurl->agent_alias( 'Windows IE 6' );

sets your User-Agent to

  Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)

  $lwpcurl->proxy($proxyurl)
Set the proxy in the constructor, $proxyurl will be like:
    http://myproxy.com:3128/
    http://username:password@proxy.com:3128/

libcurl respects the environment variables http_proxy, ftp_proxy, all_proxy etc, if any of those are set. The $lwpcurl->proxy option does however override any possibly set environment variables.

To disable proxy set $lwpcurl->proxy('');

$lwpcurl->proxy without argument, return the current proxy

TODO
This is a small list of features I'm plan to add. Feel free to contribute with your wishlist and comentaries!

•   Test for the upload method

•   Improve the Documentation and tests

•   Support Cookies

•   PASS in all tests of LWP

•   Make a patch to WWW::Mechanize, todo change engine, like "new(engine => 'LWP::Curl')"

AUTHOR
Lindolfo Rodrigues de Oliveira Neto, "<lorn at cpan.org>"

BUGS
Please report any bugs or feature requests to "bug-lwp-curl at rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=LWP-Curl>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT
You can find documentation for this module with the perldoc command.

    perldoc LWP::Curl

You can also look for information at:

•   RT: CPAN's request tracker

    <http://rt.cpan.org/NoAuth/Bugs.html?Dist=LWP-Curl>

•   AnnoCPAN: Annotated CPAN documentation

    <http://annocpan.org/dist/LWP-Curl>

•   CPAN Ratings

    <http://cpanratings.perl.org/d/LWP-Curl>

•   Search CPAN

    <http://search.cpan.org/dist/LWP-Curl>

ACKNOWLEDGEMENTS
Thanks to Breno G. Oliveira for the great tips. Thanks for the LWP and WWW::Mechanize for the inspiration. Thanks for Neil Bowers for the patches Thanks for Mark Allen for the patches

COPYRIGHT & LICENSE
Copyright 2009 Lindolfo Rodrigues de Oliveira Neto, all rights reserved.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.