當我們重定向到另一個頁面(例如到其他網站的頁面)時,服務器響應時使用http狀態碼。如果一切正常,則返回200.
當我撥打Response.Redirect
時,如何檢測從遠程服務器返回的http狀態碼?
我希望登錄數據庫重定向是否正確執行。在asp.net重定向後獲取http狀態碼
0
A
回答
0
你不行。您將訪問者的瀏覽器重定向到另一個URL。如果該URL不指向您控制的服務器,則無法看到該請求是如何發生的。
0
當您編寫Response.Redirect(...)
時,這會導致您的站點發送一個HTTP 302(移動)回到客戶端瀏覽器......並且就服務器而言,這是故事的結尾 - 與客戶端的連接是關閉,你沒有更多的互動。
您根本無法檢測到客戶端瀏覽器然後加載了您的302所指示的資源,除非該資源碰巧位於您自己的服務器上 - 在您的情況下,它不是。
我可以看到你檢查這在任何半meanginful方式的唯一方法是,如果您代表客戶第一在後面自己的代碼中做一次檢查通過發出自己的HTTP GET的重定向位置...但這仍然只是告訴你,在你檢查的時候,你的遠程資源給你。
但你仍然不能說基於你獲得HTTP 200,客戶端也能夠訪問它(防火牆,連接不良,黑名單,拋開現在你把請求翻倍的問題加載該遠程資源..),說實話,我不會建議,即使打擾這樣做,因爲它不是一個100%可靠的方法。
0
好的這可能不是一個完美的解決方案,但它肯定是我的書中可以接受的解決方法。這裏的想法是,你可以確定給定URL的預期HttpStatusCode應該是什麼。
public HttpStatusCode GetRedirectStatusCode(string destinationUrl)
{
var request = (HttpWebRequest)WebRequest.Create(destinationUrl);
request.Method = "HEAD";
request.KeepAlive = false;
request.ProtocolVersion = HttpVersion.Version10;
request.Timeout = 180000;
using(var response = (HttpWebResponse)request.GetResponse())
{
return response.StatusCode;
}
}
相關問題
- 1. 獲取主機的IP地址和HTTP狀態,重定向後
- 2. 獲取HTTP狀態代碼
- 3. 後重定向 - 在ASP.NET中獲取
- 4. PHP CURL跟隨重定向獲取HTTP狀態
- 5. 在jquery中獲取http狀態代碼
- 6. HTTP狀態碼「8」無效,在重定向時出現問題
- 7. 使用curl獲取最終的重定向狀態代碼PHP
- 8. 如何使用NET:HTTP獲取重定向的狀態碼?
- 9. HttpClient獲取狀態碼並按照重定向獲取最終頁面狀態代碼
- 10. C++:從URL獲取HTTP狀態代碼
- 11. 通過MeteorJS獲取HTTP狀態代碼
- 12. 獲取HTTP狀態代碼描述
- 13. Windows Phone - 如何獲取HTTP狀態碼?
- 14. 從SOAP響應獲取HTTP狀態碼
- 15. 獲取有關HTTP狀態代碼
- 16. 返回重定向CouchDB中的HTTP狀態碼顯示功能
- 17. 得到一個HTTP狀態代碼重定向
- 18. 使用MockMvc測試重定向URL的HTTP狀態代碼
- 19. 語言重定向的HTTP狀態代碼
- 20. 用於基於位置的重定向的HTTP狀態代碼
- 21. 哪個Http重定向要使用的狀態碼?
- 22. 捕獲HTTP狀態300用於重定向下載鏈接
- 23. 獲取HTTP狀態404 -/hello /?
- 24. 獲取HttpWebResponse後重定向
- 25. 後/重定向/獲取
- 26. HTTP響應代碼後重定向
- 27. Django重定向狀態代碼錯誤
- 28. Coldfusion重定向頁面狀態碼410
- 29. CakePHP重定向狀態碼404
- 30. Post重定向在asp.net中獲取
但是我在某些網站上看到,那個日誌200好了或者重定向後的另一個代碼 – mmtemporary
是它的IIS日誌嗎? – User2012384