有没有办法告诉WWW :: Mechanize总是为每个请求发送正确的Host头?我知道如果我这样做,我可以手动发送主机头:
my $url = URI->new('https://mysite.example.com/app/mypage.jspx');
$mech->get($url, Host => $url->authority);
问题是我的请求经历了一系列重定向到位于不同主机上的单一登录页面。我没有收到SSO页面,因为它没有看到主机标题符合预期值。
我尝试了类似于Perl WWW::Mechanize (or LWP) get redirect url的解决方案,但切换到不同的主机发生在多次重定向后,而不是第一次重定向。
我能想到的唯一解决方案是使用自己的重定向检测逻辑编写自己的$ mech-> get()方法,或者制作WWW :: Mechanize的副本并对其进行修补。第一个看起来像是在重新发明轮子。当我下次从CPAN更新WWW :: Mechanize时,第二个将被覆盖。当然有更好的方法。