Beefy Boxes and Bandwidth Generously Provided by pair Networks
There's more than one way to do things
 
PerlMonks  

Re^4: Does CGI::Application expose a HTTP::Request object?

by isync (Hermit)
on Aug 11, 2010 at 11:34 UTC ( #854331=note: print w/ replies, xml ) Need Help??


in reply to Re^3: Does CGI::Application expose a HTTP::Request object?
in thread Does CGI::Application expose a HTTP::Request object?

1. Error on a first pass: "Can't call method "clone" on unblessed reference at /usr/share/perl5/HTTP/Message.pm line 32."

2. Shouldn't the %ENV variable names be mapped to the a-bit-different HTTP Header names?

3. And we are passing a hashref to the HTTP::Request constructor, but it expects an arrayref (solved via this node).

Changed code:

my %env_to_httpheader = ( 'HTTP_USER_AGENT' => 'User-Agent', 'HTTP_HOST' => 'Host', 'HTTP_TE' => 'Accept-Encoding', 'CONTENT_LENGTH' => 'Content-Length', # from here on blurry from memory: (and probably more to inclu +de as well..) 'CONTENT_ENCODING' => 'Content-Encoding', 'CONTENT_TYPE' => 'Content-Type', ); my $headers; foreach my $key (keys %env_to_httpheader) { if (exists $ENV{$key}) { # $headers->{ $env_to_httpheader{$key} } = $ENV{$key}; # "The optional $header argument should be a reference + to an HTTP::Headers object or a plain array reference of key/value p +airs." push(@{ $headers }, $env_to_httpheader{$key}); push(@{ $headers }, $ENV{$key}); } }

Result: After changing this, it works!

Any leftovers, hints, tweaks for this piece of code before I move it to production code? For example, a module for the ENV to HTTP Header translation, or similar improvements?

2c: A lengthy hack, isn't it? Just to get a HTTP::Response out of CGI.pm/CGI::Fast. Once more, I dislike this CGI.pm-behemoth..


Comment on Re^4: Does CGI::Application expose a HTTP::Request object?
Download Code

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://854331]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others scrutinizing the Monastery: (11)
As of 2014-08-29 09:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The best computer themed movie is:











    Results (277 votes), past polls