raku-community-modules / LWP-Simple

LWP::Simple quick & dirty implementation for Rakudo
http://www.streppone.it/cosimo/blog/tag/LWP::Simple/
Artistic License 2.0
8 stars 9 forks source link
raku

LWP::Simple for Raku

Test Windows and MacOS

This is a quick & dirty implementation of a LWP::Simple clone for Raku; it does both GET and POST requests.

Dependencies

LWP::Simple depends on the modules MIME::Base64 and URI, which you can find at http://modules.raku.org/. The tests depends on JSON::Tiny.

Write:

zef install --deps-only .

You'll have to install IO::Socket::SSL via

zef install IO::Socket::SSL

if you want to work with https too.

Synopsis

use LWP::Simple;

my $content = LWP::Simple.get("https://raku.org");

my $response = LWP::Simple.post("https://somewhere.topo.st", { so => True }

Methods

get ( $url, [ %headers = {}, Bool :$exception ] )

Sends a GET request to the value of $url. Returns the content of the return request. Errors are ignored and will result in a Nil value unless $exception is set to True, in which case an LWP::Simple::Response object containing the status code and brief description of the error will be returned.

Requests are make with a default user agent of LWP::Simple/$VERSION Raku/$*PERL.compiler.name() which may get blocked by some web servers. Try overriding the default user agent header by passing a user agent string to the %headers argument with something like { 'User-Agent' => 'Your User-Agent String' } if you have trouble getting content back.

Current status

You can use HTTP::UserAgent instead, with more options. However, this module will do just fine in most cases.

The documentation of this module is incomplete. Contributions are appreciated.

Use

Use the installed commands:

 lwp-download.p6  http://eu.httpbin.org

Or

 lwp-download.p6  https://docs.perl6.org

If ÌO::Socket::SSL has been installed.

lwp-get.p6  https://raku.org

will instead print to standard output.

Known bugs

According to issues raised, in this repo, there could be some issues with older versions of MacOSx. This issue does not affect the functionality of the module, but just the test script itself, so you can safely install with --force. Right now, it's working correctly (as far as tests go) with Windows, MacOSx and Linux.

License

This distribution is licensed under the terms of the Artistic 2.0 license. You can find a copy in the repository itself.