NAME
Mojo::Transaction::HTTP - HTTP transaction
SYNOPSIS
my $tx = Mojo::Transaction::HTTP->new;
$tx ->req->method( 'GET' );
$tx ->req->headers-> accept ( 'application/json' );
say $tx ->res->code;
say $tx ->res->headers->content_type;
say $tx ->res->body;
say $tx ->remote_address;
my $tx = Mojo::Transaction::HTTP->new;
say $tx ->req->method;
say $tx ->req->url->to_abs;
say $tx ->req->headers-> accept ;
say $tx ->remote_address;
$tx ->res->code(200);
$tx ->res->headers->content_type( 'text/plain' );
$tx ->res->body( 'Hello World!' );
|
DESCRIPTION
Mojo::Transaction::HTTP is a container for HTTP transactions based on RFC 7230 and RFC 7231.
EVENTS
Mojo::Transaction::HTTP inherits all events from Mojo::Transaction and can emit the following new ones.
request
$tx ->on( request => sub {
my $tx = shift ;
...
});
|
Emitted when a request is ready and needs to be handled.
$tx ->on( request => sub {
my $tx = shift ;
$tx ->res->headers->header( 'X-Bender' => 'Bite my shiny metal ass!' );
});
|
unexpected
$tx ->on( unexpected => sub {
my ( $tx , $res ) = @_ ;
...
});
|
Emitted for unexpected 1xx
responses that will be ignored.
$tx ->on( unexpected => sub {
my $tx = shift ;
$tx ->res->on( finish => sub { say 'Follow-up response is finished.' });
});
|
upgrade
$tx ->on( upgrade => sub {
my ( $tx , $ws ) = @_ ;
...
});
|
Emitted when transaction gets upgraded to a Mojo::Transaction::WebSocket object.
$tx ->on( upgrade => sub {
my ( $tx , $ws ) = @_ ;
$ws ->res->headers->header( 'X-Bender' => 'Bite my shiny metal ass!' );
});
|
ATTRIBUTES
Mojo::Transaction::HTTP inherits all attributes from Mojo::Transaction and implements the following new ones.
previous
my $previous = $tx ->previous;
$tx = $tx ->previous(Mojo::Transaction::HTTP->new);
|
Previous transaction that triggered this follow-up transaction, usually a Mojo::Transaction::HTTP object.
say $tx ->previous->previous->req->url->path;
say $tx ->previous->req->url->path;
|
METHODS
Mojo::Transaction::HTTP inherits all methods from Mojo::Transaction and implements the following new ones.
client_read
$tx ->client_read( $bytes );
|
Read data client-side, used to implement user agents.
client_write
my $bytes = $tx ->client_write;
|
Write data client-side, used to implement user agents.
is_empty
my $bool = $tx ->is_empty;
|
Check transaction for HEAD
request and 1xx
, 204
or 304
response.
keep_alive
my $bool = $tx ->keep_alive;
|
Check if connection can be kept alive.
redirects
my $redirects = $tx ->redirects;
|
Return a list of all previous transactions that preceded this follow-up transaction.
say $_ ->req->url->path for @{ $tx ->redirects};
|
server_read
$tx ->server_read( $bytes );
|
Read data server-side, used to implement web servers.
server_write
my $bytes = $tx ->server_write;
|
Write data server-side, used to implement web servers.
SEE ALSO
Mojolicious, Mojolicious::Guides, http://mojolicio.us.