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