use strict;
use base 'Catalyst::Engine::CGI';
-use HTTP::Request;
+use Catalyst::Utils;
use HTTP::Response;
use HTTP::Status;
use NEXT;
sub run {
my ( $self, $class, $request ) = @_;
- # Construct request
- unless ( ref $request ) {
- if ( $request =~ m/http/i ) {
- $request = URI->new($request)->canonical;
- }
- else {
- $request = URI->new( 'http://localhost' . $request )->canonical;
- }
- }
- unless ( ref $request eq 'HTTP::Request' ) {
- $request = HTTP::Request->new( 'GET', $request );
- }
+ $request = Catalyst::Utils::request($request);
$request->header(
'Host' => sprintf( '%s:%d', $request->uri->host, $request->uri->port )
# We emulate CGI
local %ENV = (
- PATH_INFO => $request->uri->path || '',
- QUERY_STRING => $request->uri->query || '',
- REMOTE_ADDR => '127.0.0.1',
- REMOTE_HOST => 'localhost',
+ PATH_INFO => $request->uri->path || '',
+ QUERY_STRING => $request->uri->query || '',
+ REMOTE_ADDR => '127.0.0.1',
+ REMOTE_HOST => 'localhost',
REQUEST_METHOD => $request->method,
SERVER_NAME => 'localhost',
SERVER_PORT => $request->uri->port,