Astro-SIMBAD-Client
view release on metacpan or search on metacpan
lib/Astro/SIMBAD/Client.pm view on Meta::CPAN
my ( $self, $fragment ) = @_;
defined $fragment
or $fragment = '';
eval { $fragment->isa( 'HTTP::Request' ) }
and return $fragment;
$fragment =~ s< \A / ><>smx; # Defensive programming
return sprintf '%s://%s/%s', $self->get( 'scheme' ),
$self->get( 'server' ), $fragment;
}
# _callers_caller();
#
# Returns the name of the subroutine that called the caller.
# Results undefined if not called from a subroutine nested at
# least two deep.
sub _callers_caller {
my $inx = 1;
my $caller;
foreach ( 1 .. 2 ) {
do {
lib/Astro/SIMBAD/Client.pm view on Meta::CPAN
sub _retrieve {
my ($self, $fragment, $args) = @_;
my $url = $self->__build_url( $fragment );
$args ||= {};
my $debug = $self->get ('debug');
my $ua = _get_user_agent ();
$self->_delay ();
my $resp;
if (eval {$url->isa('HTTP::Request')}) {
$debug
and print 'Debug ', _callers_caller(), 'executing ',
$url->as_string, "\n";
$resp = $ua->request ($url);
} elsif ($self->get ('post') && %$args) {
if ($debug) {
print 'Debug ', _callers_caller(), " posting to $url\n";
foreach my $key (sort keys %$args) {
print " $key => $args->{$key}\n";
}
}
$resp = $ua->post ($url, $args);
} else {
my $join = '?';
foreach my $key (sort keys %$args) {
$url .= $join . _escape_uri( $key ) . '=' . _escape_uri (
$args->{$key} );
$join = '&';
}
$debug
and print 'Debug ', _callers_caller(), " getting from $url\n";
$resp = $ua->get( $url );
}
$debug
and print 'Debug - request: ', $resp->request()->as_string(), "\n";
$resp->is_success()
and return $resp;
my $rq = $resp->request()
or croak $resp->status_line();
( run in 0.293 second using v1.01-cache-2.11-cpan-cc502c75498 )