Hello.
I'm looking for a way to get "real" outgoing headers, generated by LWP (I need them for logging/debugging purpose).
I already read few articles about related questions here, but that's not solve my issue, including this one:
http://www.perlmonks.org/?node_id=464442 - how to validate lwp::useragent request?
#!/usr/bin/env perl -w use strict; use warnings; $| = 1; my $url = 'http://example.com/'; use LWP::UserAgent; { no warnings 'once'; @LWP::Protocol::http::EXTRA_SOCK_OPTS = ( SendTE => 0, KeepAlive = +> 1, PeerHTTPVersion => "1.1" ); } my $ua = new LWP::UserAgent; my $response = $ua->get("http://example.com"); warn "[Headers Out v1]\n", $response->request()->as_string(), "\n\n"; warn "[Headers In]:\n", $response->headers()->as_string, "\n\n";
#!/usr/bin/env perl -w use strict; use warnings; $| = 1; my $url = 'http://example.com/'; use LWP::UserAgent; use HTTP::Request::Common; { no warnings 'once'; @LWP::Protocol::http::EXTRA_SOCK_OPTS = ( SendTE => 0, KeepAlive = +> 1, PeerHTTPVersion => "1.1" ); } my $ua = new LWP::UserAgent; my $request = HTTP::Request::Common::GET($url); $ua->prepare_request($request); warn "[Headers Out v2]\n", $request->as_string, "\n\n"; my $response = $ua->send_request($request); warn "[Headers Out v2]\n", $response->request()->as_string(), "\n\n"; warn "[Headers In]:\n", $response->headers()->as_string, "\n\n";
Both produce exactly same result for Headers Out:
GET http://example.com/ User-Agent: libwww-perl/6.05
But not "real" one, which looks like this:
GET / HTTP/1.1 Host: example.com User-Agent: libwww-perl/6.05 Connection: keep-alive
Thanks in advance for any help.
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |