Recently I found myself trying to debug a problem with WWW::Mechanize and I wanted to dump the headers as my Mech object was traversing several Web pages with complicated redirects. The following subclass will print the headers to STDOUT while the requests are being made (note that this may be undesireable behavior and you'll probably want to adjust this to suit your own needs).
package WWW::Mechanize::WithHeaders; use base 'WWW::Mechanize'; use constant REQUEST => 'Request'; use constant RESPONSE => 'Response'; sub _make_request { my $self = shift; $self->_show_headers(REQUEST, $_[0]->as_string); my $response = $self->SUPER::_make_request(@_); $self->_show_headers(RESPONSE, $response->as_string); return $response; } sub _show_headers { my ($self, $type, $headers) = @_; if (RESPONSE eq $type) { $headers =~ s/\n\n.*$/\n\n/s; # strip body } else { $headers .= "\n"; # add an extra newline } print "$type:\n\n$headers"; $self; }
In reply to Show WWW::Mechanize Headers by Ovid
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |