Bio-Das
view release on metacpan or search on metacpan
Das/HTTP/Fetch.pm view on Meta::CPAN
$debug=0;
# save the rest of our information
return bless {
# ("waiting", "reading header", "reading body", or "parsing body")
status => 'waiting',
socket => $sock,
path => $path,
request => $request,
outgoing_headers => $headers,
host => $host,
# rather than encoding for every request
auth => $auth,
mode => $mode, #http vs https
debug => $debug,
incoming_header => undef, # none yet
},$pack;
}
# this will return the socket associated with the object
=item $socket = $fetcher->socket
Return the IO::Socket associated with the HTTP request. The socket
is marked nonblocking and may not yet be in a connected state.
=item $path = $fetcher->path
Return the path part of the HTTP request.
=item $request = $fetcher->request
Return the L<Bio::Das::Request> object that the fetcher will attempt
to satisfy.
=item $args = $fetcher->args
Returns a hashref containing the CGI arguments to be passed to the
HTTP server. This is simply delegated to the request's args() method.
=item $url = $fetcher->url
Returns the URL for the HTTP request. This is simply delegated to the
request's url() method.
=item $headers = $fetcher->outgoing_headers
Returns a hashref containing the HTTP headers that will be sent in the
request.
=item $host = $fetcher->host
Returns the host to which the fetcher will connect. Note that this is
B<not> necessarily the same host as the DAS server, as this method
will return the name of the B<proxy> if an HTTP proxy has been
specified. To get the DAS server hostname, call
$fetcher->request->host.
=item $credentials = $fetcher->auth
Return the authentication credentials as a base64-encoded string.
=item $header = $fetcher->incoming_header
Retrieve the incoming HTTP header. Depending on the state of the
connection, the header may be empty or incomplete.
=cut
sub socket { shift->{socket} }
sub path { shift->{path} }
sub request { shift->{request} }
sub outgoing_args { shift->request->args }
sub url { shift->request->url }
sub outgoing_headers { shift->{outgoing_headers} }
sub host { shift->{host} } # mostly for debugging purposes
sub auth { shift->{auth} }
sub incoming_header { shift->{incoming_header} } # buffer for header data
=item $mode = $fetcher->mode([$new_mode])
This misnamed method gets or sets the protocol, which is one of 'http'
for regular cleartext transactions or 'https' for transactions using
the encrypting SSL/TLS protocol. Note that you must have
IO::Socket::SSL and its associated libraries in order to use SSL/TLS.
=cut
sub mode {
my $self = shift;
my $d = $self->{mode};
$self->{mode} = shift if @_;
$d;
}
=item $mode = $fetcher->mode([$new_mode])
This misnamed method gets or sets the protocol, which is one of 'http'
for regular cleartext transactions or 'https' for transactions using
the encrypting SSL/TLS protocol. Note that you must have
IO::Socket::SSL and its associated libraries in order to use SSL/TLS.
=cut
sub method {
my $self = shift;
my $meth = uc $self->request->method;
return 'GET' unless $meth;
if ($meth eq 'AUTO') {
return $self->outgoing_args ? 'POST' : 'GET';
}
return $meth;
}
=item $status = $fetcher->status([$new_status])
This method is used to interrogate or change the status of the
transaction. The status keeps track of what has been done so far, and
is one of:
( run in 0.624 second using v1.01-cache-2.11-cpan-39bf76dae61 )