ASP4
view release on metacpan or search on metacpan
lib/ASP4/UserAgent.pm view on Meta::CPAN
package ASP4::UserAgent;
use strict;
use warnings 'all';
use Carp 'confess';
use Cwd 'fastcwd';
use HTTP::Request::Common;
use HTTP::Response;
use ASP4::HTTPContext;
use ASP4::ConfigLoader;
use ASP4::SimpleCGI;
use ASP4::Mock::RequestRec;
sub new
{
return bless {
cwd => fastcwd(),
http_cookie => '',
cookies => { },
referer => '',
env => { %ENV },
}, shift;
}# end new()
sub context { shift->{context} }
sub config { chdir(shift->{cwd}); ASP4::ConfigLoader->load }
sub get
{
my ($s, $uri) = @_;
chdir( $s->{cwd} );
my $req = GET $uri;
my $referer = $ENV{HTTP_REFERER};
%ENV = (
%{ $s->{env} },
HTTP_HOST => $s->{env}->{HTTP_HOST} || $s->{cwd},
HTTP_REFERER => $referer || '',
DOCUMENT_ROOT => $s->config->web->www_root,
REQUEST_METHOD => 'GET',
CONTENT_TYPE => 'application/x-www-form-urlencoded',
HTTP_COOKIE => $s->http_cookie,
REQUEST_URI => $uri,
);
my $cgi = $s->_setup_cgi( $req );
my ($uri_no_args, $querystring) = split /\?/, $uri;
my $r = ASP4::Mock::RequestRec->new( uri => $uri_no_args, args => $querystring );
my $current_is_subrequest = $ASP4::HTTPContext::_instance ? $ASP4::HTTPContext::_instance->{is_subrequest} ? 1 : 0 : 0;
$s->{context} = ASP4::HTTPContext->new( is_subrequest => $current_is_subrequest ? 1 : 0 );
return do {
local $ASP4::HTTPContext::_instance = $s->context;
$s->context->setup_request( $r, $cgi );
$s->_setup_response( $s->context->execute() );
};
}# end get()
sub post
{
my ($s, $uri, $args) = @_;
chdir( $s->{cwd} );
( run in 0.711 second using v1.01-cache-2.11-cpan-39bf76dae61 )