FreeBSD Manual Pages
HTTP::AnyUA::Backend(3User Contributed Perl DocumentatiHTTP::AnyUA::Backend(3) NAME HTTP::AnyUA::Backend - A base class for HTTP::AnyUA backends VERSION version 0.904 SYNOPSIS package HTTP::AnyUA::Backend::MyUserAgent; use parent 'HTTP::AnyUA::Backend'; sub response_is_future { 0 } sub request { my ($self, $method, $url, $args) = @_; my $ua = $self->ua; # Here is where you transform the arguments into a request that $ua # understands, make the request against $ua and get a response, and # transform the response to the expected hashref form. my $resp = $ua->make_request(); return $resp; } ### Non-blocking user agents are expected to return Future objects: use Future; sub response_is_future { 1 } sub request { my ($self, $method, $url, $args) = @_; my $ua = $self->ua; my $future = Future->new; # Again, this example glosses over transforming the request and response # to and from the actual user agent, but such details are the whole # point of a backend. $ua->nonblocking_callback(sub { my $resp = shift; if ($resp->{success}) { $future->done($resp); } else { $future->fail($resp); } }); return $future; } DESCRIPTION This module provides an interface for an HTTP::AnyUA "backend," which is an adapter that adds support for using a type of user agent with HTTP::AnyUA. This class should not be instantiated directly, but it may be convenient for backend implementations to subclass it. At its core, a backend simply takes a set of standard arguments that represent an HTTP request, transforms that request into a form understood by an underlying user agent, calls upon the user agent to make the request and get a response, and then transforms that response into a standard form. The standard forms for the request and response are based on HTTP::Tiny's arguments and return value to and from its request method. ATTRIBUTES ua Get the user agent that was passed to "new". response_is_future Get whether or not responses are Future objects. Default is false. This may be overridden by implementations. METHODS new $backend = HTTP::AnyUA::Backend::MyUserAgent->new($my_user_agent); Construct a new backend. request $response = $backend->request($method => $url, \%options); Make a request, get a response. This must be overridden by implementations. SEE ALSO o "The Request" in HTTP::AnyUA - Explanation of the request arguments o "The Response" in HTTP::AnyUA - Explanation of the response BUGS Please report any bugs or feature requests on the bugtracker website <https://github.com/chazmcgarvey/HTTP-AnyUA/issues> When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature. AUTHOR Charles McGarvey <chazmcgarvey@brokenzipper.com> COPYRIGHT AND LICENSE This software is copyright (c) 2019 by Charles McGarvey. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.32.0 2019-03-17 HTTP::AnyUA::Backend(3)
NAME | VERSION | SYNOPSIS | DESCRIPTION | ATTRIBUTES | METHODS | SEE ALSO | BUGS | AUTHOR | COPYRIGHT AND LICENSE
Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=HTTP::AnyUA::Backend&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>