aboutsummaryrefslogtreecommitdiff
path: root/perl/Curl_easy/examples/basicfirst.pl
blob: a04deb515048911f78b9b4ddf00b124b7cda3ab8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# 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;