| # Test script for Perl extension Curl::easy. |
| # Check out the file README for more info. |
| |
| use strict; |
| use Curl::easy; |
| |
| my $url = "http://curl.haxx.se/dev/"; |
| |
| print "Testing curl version ",&Curl::easy::version(),"\n"; |
| |
| # Init the curl session |
| my $curl= Curl::easy::init(); |
| if(!$curl) { |
| die "curl init failed!\n"; |
| } |
| |
| # Follow location headers |
| Curl::easy::setopt($curl, CURLOPT_FOLLOWLOCATION, 1); |
| |
| # Add some additional headers to the http-request: |
| my @myheaders; |
| $myheaders[0] = "I-am-a-silly-programmer: yes indeed you are"; |
| $myheaders[1] = "User-Agent: Perl interface for libcURL"; |
| Curl::easy::setopt($curl, Curl::easy::CURLOPT_HTTPHEADER, \@myheaders); |
| |
| my $errbuf; |
| Curl::easy::setopt($curl, CURLOPT_ERRORBUFFER, "errbuf"); |
| |
| Curl::easy::setopt($curl, CURLOPT_URL, $url); |
| |
| sub body_callback { |
| my ($chunk,$handle)=@_; |
| push @$handle, $chunk; |
| return length($chunk); # OK |
| } |
| Curl::easy::setopt($curl, CURLOPT_WRITEFUNCTION, \&body_callback); |
| |
| my @body; |
| Curl::easy::setopt($curl, CURLOPT_FILE, \@body); |
| |
| if (Curl::easy::perform($curl) != 0) { |
| print "Failed :$errbuf\n"; |
| }; |
| |
| # Cleanup |
| Curl::easy::cleanup($curl); |
| |
| print @body; |