BioPerl
view release on metacpan or search on metacpan
Bio/Root/HTTPget.pm view on Meta::CPAN
$auth_required =~ /^Basic realm="([^\"]+)"/
or __PACKAGE__->throw("server requires unknown type of ".
"authentication: $auth_required");
__PACKAGE__->throw("request failed: $status_line, realm = $1");
}
elsif ($stat_code != 200) {
__PACKAGE__->throw("request failed: $status_line");
}
# Now that we are reasonably sure the socket and request
# are OK we pass the socket back as a filehandle so it can
# be processed by the caller...
$socket;
}
=head2 _http_parse_url
Title :
Usage :
Function:
Example :
Returns :
Args :
=cut
sub _http_parse_url {
my $self;
if($_[0] && (ref($_[0]) or $_[0] =~ /^Bio::/)) {
$self = shift;
}
my $url = shift;
my ($user,$pass,$hostent,$path) =
$url =~ m!^http://(?:([^:]+):([^:]+)@)?([^/]+)(/?[^\#]*)! or return;
$path ||= '/';
my ($host,$port) = split(':',$hostent);
return ($host,$port||80,$path,$user,$pass);
}
=head2 _http_connect
Title :
Usage :
Function:
Example :
Returns :
Args :
=cut
sub _http_connect {
my ($host,$port,$timeout) = @_;
my $sock = IO::Socket::INET->new(Proto => 'tcp',
Type => SOCK_STREAM,
PeerHost => $host,
PeerPort => $port,
Timeout => $timeout,
);
$sock;
}
=head2 _encode_base64
Title :
Usage :
Function:
Example :
Returns :
Args :
=cut
sub _encode_base64 {
my $self;
if($_[0] && (ref($_[0]) or $_[0] =~ /^Bio::/)) {
$self = shift;
}
my $res = "";
my $eol = $_[1];
$eol = "\n" unless defined $eol;
pos($_[0]) = 0; # ensure start at the beginning
$res = join '', map( pack('u',$_)=~ /^.(\S*)/, ($_[0]=~/(.{1,45})/gs));
$res =~ tr|` -_|AA-Za-z0-9+/|; # `# help emacs
# fix padding at the end
my $padding = (3 - length($_[0]) % 3) % 3;
$res =~ s/.{$padding}$/'=' x $padding/e if $padding;
# break encoded string into lines of no more than 76 characters each
if (length $eol) {
$res =~ s/(.{1,76})/$1$eol/g;
}
return $res;
}
=head2 proxy
Title : proxy
Usage : $httpproxy = $db->proxy('http') or
$db->proxy(['http','ftp'], 'http://myproxy' )
Function: Get/Set a proxy for use of proxy. Defaults to environment variable
http_proxy if present.
Returns : a string indicating the proxy
Args : $protocol : string for the protocol to set/get
$proxyurl : url of the proxy to use for the specified protocol
$username : username (if proxy requires authentication)
$password : password (if proxy requires authentication)
=cut
sub proxy {
my $self;
if($_[0] && (ref($_[0]) or $_[0] =~ /^Bio::/)) {
$self = shift;
}
( run in 2.978 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )