Package TWiki::Net
Object that brokers access to network resources.
Break circular references.
getExternalResource( $url, @headers ) -> $response
Get whatever is at the other end of a URL (using an HTTP GET request). Will
only work for encrypted protocols such as
https
if the
LWP
CPAN module is
installed.
Note that the
$url
may have an optional user and password, as specified by
the relevant RFC. Any proxy set in
configure
is honored.
Optional headers may be supplied of form 'name1', 'value1', 'name2', 'value2'.
Do not add a User-Agent header, it will be added.
The
$response
is an object that is known to implement the following subset of
the methods of
LWP::Response
. It may in fact be an
LWP::Response
object,
but it may also not be if
LWP
is not available, so callers may only assume
the following subset of methods is available:
code() |
message() |
header($field) |
content() |
is_error() |
is_redirect() |
Note that if LWP is
not available, this function:
- can only really be trusted for HTTP/1.0 urls. If HTTP/1.1 or another protocol is required, you are strongly recommended to
require LWP
.
- Will not parse multipart content
In the event of the server returning an error, then
is_error()
will return
true,
code()
will return a valid HTTP status code
as specified in RFC 2616 and RFC 2518, and
message()
will return the
message that was received from
the server. In the event of a client-side error (e.g. an unparseable URL)
then
is_error()
will return true and
message()
will return an explanatory
message.
code()
will return 400 (BAD REQUEST).
Note: Callers can easily check the availability of other HTTP::Response methods
as follows:
my $response = TWiki::Func::getExternalResource($url);
if (!$response->is_error() && $response->isa('HTTP::Response')) {
$text = $response->content();
# ... other methods of HTTP::Response may be called
} else {
# ... only the methods listed above may be called
}
setMailHandler( \&fn )
-
\&fn
- reference to a function($) (see _sendEmailBySendmail for proto)
Install a handler function to take over mail sending from the default
SMTP or sendmail methods. This is provided mainly for tests that
need to be told when a mail is sent, without actually sending it. It
may also be useful in the event that someone needs to plug in an
alternative mail handling method.
ObjectMethod sendEmail ($text,$retries) -> $error
-
$text
- text of the mail, including MIME headers
-
$retries
- number of times to retry the send (default 1)
Send an email specified as MIME format content.
Date: ...\nFrom: ...\nTo: ...\nCC: ...\nSubject: ...\n\nMailBody...