in reply to Re^5: Zip file from WWW::Mechanize
in thread Zip file from WWW::Mechanize

Does this help? This is a Dumper($mech):
'content-typ +e' => 'text/html; charset=utf-8', 'server' => ' +Microsoft-IIS/6.0', 'content-styl +e-type' => 'text/css', 'x-are' => 'y +ou digging my headers?', 'x-powered-b +y' => [ + 'http://www.bandwidth.com', + 'ASP.NET' + ], 'content-dis +position' => 'attachment;filename=auto_20090318_0610.zip', 'client-resp +onse-num' => 1, 'content-len +gth' => '337991', 'x-aspnet-ve +rsion' => '2.0.50727',
I notice the content-type and content length.

Jack

Replies are listed 'Best First'.
Re^7: Zip file from WWW::Mechanize
by ikegami (Patriarch) on Mar 23, 2009 at 22:47 UTC

    That confirms that the server is giving you garbage. It's saying that the zip file is really an UTF-8 HTML document.

    'content-type' => 'text/html; charset=utf-8', 'content-disposition' => 'attachment;filename=auto_20090318_0610.zip',

    The solution is to fix the response received from the web server.

    BEGIN { my $old_make_request = WWW::Mechanize->can('_make_request'); no warnings 'redefine'; *WWW::Mechanize::_make_request = sub { my $response = $old_make_request->(@_); my $type = $response->header('Content-Type'); my $dispo = $response->header('Content-Disposition'); $response->header('Content-Type' => 'application/zip') if defined($dispo) && $dispo =~ m{\.zip$} && defined($type) && $type =~ m{^text/}; return $response; }; }

    Untested.

      Thanks!!!!!

      That worked with no change on my preliminary test.

      I never would have figured that out since it worked properly on FF.

      Jack