NAME
LWP::Curl - LWP methods implementation with Curl engine
VERSION
Version 0.11
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 the spider receive a HTTP 301 ( Redirect ) they will follow?. The default is 1.
auto_encode => [0|1]
Turn on/off auto encode urls, for get/post.
maxredirs => number
Set how deep the spider will follow when receive HTTP 301 ( Redirect ). 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
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
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 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.