WWW-Curl-Simple
view release on metacpan or search on metacpan
lib/WWW/Curl/Simple/Request.pm view on Meta::CPAN
$curl->setopt(CURLOPT_HTTPHEADER, \@headers);
}
my ($body_ref, $head_ref) = ('', '');
$self->body(\$body_ref);
$self->head(\$head_ref);
open (my $fileb, ">", \$body_ref);
$curl->setopt(CURLOPT_WRITEDATA,$fileb);
my $h = $self->head;
open (my $fileh, ">", \$head_ref);
$curl->setopt(CURLOPT_WRITEHEADER,$fileh);
my $max_redirects = $self->simple_ua->max_redirects;
# follow redirects for up to 5 hops
if ($WWW::Curl::Easy::CURLPROTO_HTTP) {
# This option and the CURLPROTO_HTTP was both added in 7.19.4
$curl->setopt($WWW::Curl::Easy::CURLOPT_REDIR_PROTOCOLS, $WWW::Curl::Easy::CURLPROTO_HTTP);
}
$curl->setopt(CURLOPT_FOLLOWLOCATION, $max_redirects > 0);
$curl->setopt(CURLOPT_MAXREDIRS, $max_redirects);
lib/WWW/Curl/Simple/Request.pm view on Meta::CPAN
return $self->response;
} else {
croak("An error happened: ".$self->easy->strerror($retcode)." ($retcode)\n");
}
}
sub response {
my ($self) = @_;
# If we handled redirects, we'll have multiple headers from CURLOPT_WRITEHEADER,
# so we strip off all but the last one before parsing it
${ $self->head } =~ s!^HTTP.*\r?\n\r?\nHTTP!HTTP!s;
my $res = HTTP::Response->parse(${$self->head} . "\r" . ${$self->body});
$res->request($self->request);
$res->content(${$self->body});
return $res;
}
__PACKAGE__->meta->make_immutable;
( run in 0.230 second using v1.01-cache-2.11-cpan-55f5a4728d2 )