0
A
回答
1
WWW::Mechanize
小类LWP::UserAgent
,所以你仍然可以使用任何LWP::UserAgent
的方法。因此,您可以使用不自动处理重定向的方法。它只是将您的回应作为HTTP::Resonse
对象返回给您。这意味着您可以使用is_redirect()
和header()
方法获取重定向URI。这意味着您可以使用URI
模块在#后面拉取所有内容。
Whe!
您的代码将是这个样子:
my $response = $mech->simple_request(HTTP::Request->new(GET => 'http://www.example.com/'));
if($response->is_redirect) {
my $location = $response->header("Location");
my $uri = new URI($location);
my $new_url = $uri->scheme . $uri->opaque;
# And here is where you do the load of the new URL.
}
可能有一些摆弄做,可能周围的header()
线,但是这将是总体思路。
+0
我想我可能只是取消了片段部分,但它基本上是相同的方法。你会在reponse_done处理程序中做同样的事情。 – 2010-10-08 21:23:07
1
WWW::Mechanize是LWP::UserAgent的子类,所以答案是一样的。
如果您想要自己处理重定向以重写URL,则可能需要使用response_done
或response_redirect
处理程序。请参阅LWP :: UserAgent文档的“处理程序”部分。
至于“正确”,HTTP specification没有说明客户端应该如何处理一个片段,除了在14.6的引用标题的情况下(这是“片段”这个词的唯一出现位置)。
相关问题
- 1. 如何让WWW :: Mechanize避免重定向?
- 2. 如何正确处理javascript重定向?
- 3. 我如何获得WWW :: Mechanize的工作?
- 4. 如何处理.net远程处理中的http 302重定向?
- 5. Android重定向(返回码302)处理
- 6. 如何获得forkpty/execvp()来正确处理重定向和其他bash-isms?
- 7. 重定向状态Tomcat和IIS 7.0之间的代码302由isapi重定向器无法正确处理
- 8. Python HTTP HEAD - 正确处理重定向?
- 9. python如何捕获302重定向url
- 10. 以正确的方式从非www到www网站以.htaccess重定向
- 11. 如何处理状态302重定向在C#httpwebreqest ASP.NET
- 12. 使用正确的URL重定向非www到www参数
- 13. Nginx的 - 如何重定向(301)www到非www正确的bot http/https?
- 14. Http重定向302
- 15. 的.htaccess重定向没有302
- 16. 的.htaccess重定向非www到www保留URI字符串
- 17. 如何获得WWW-Mechanize登录Wells Fargo的网站?
- 18. 302重定向在管理WordPress的
- 19. 表单提交后的重定向使用WWW :: Mechanize(perl)
- 20. 获取重定向的URI
- 21. 带有片段的Jena RDF资源URI
- 22. 如何将www重定向到非www?
- 23. Nginx - 带www的URL不重定向
- 24. 重定向非安全WWW网址,以确保非WWW网址
- 25. 如何使用WWW :: Mechanize获得与正则表达式匹配的链接?
- 26. 片段方向处理AsyncTask
- 27. 得到302重定向url使用php
- 28. 如何以编程方式处理ios中的重定向uri登录?
- 29. 会话处理类给予“页面没有正确重定向”
- 30. 如何正确处理带有MessageBox确认的PreviewMouseDown事件?
你到目前为止尝试过什么?你的简短演示脚本在哪里显示问题?您是否阅读过文档? – 2010-10-08 21:19:22
我认为你的意思是302重定向。 – CanSpice 2010-10-08 21:54:52