2013-04-20 75 views
0

我正在嘗試使用WebRequest或WebBrowser控件保持活動狀態。 它可以在一些沒有問題的網站上運行,但是特定的網站會在30分鐘後關閉。使用WebRequest或WebBrowser控件在C#中保持網站會話活着?

我目前所做的是使用WebBrowser控件中的NavigateTo功能以隨機間隔(1-10分鐘)請求網站頁面中的一個。網站是captcha登錄,所以我首先要求用戶登錄,然後我得到cookies並將它們用於我的WebRequest請求,並重新使用WebBrowser控件來保持網站的活性(以便WebBrowser和WebRequest客戶共享相同的cookie)。

我正在尋找想法,也許有人可以幫助我。 在此先感謝!

+0

試想想你會做什麼來保護您的* *的網站從重放同樣的Cookie,看看是否有特定的網站實現方法,你會想出...有些東西在一段時間後變得陳舊... – 2013-04-20 01:41:53

回答

0

通常,您可以做任何關於會話超時的事情,因爲它們都是客戶端和服務器端,或者只是服務器端。如果你幸運的話,那麼這個網站就會依賴於客戶端的Cookie超時。如果是這樣,你可以玩HttpCookie.Expires

這可能會阻止其到期:

HttpCookie cookie = ...; 
cookie.Expires = default(DateTime); 
+0

感謝人,cookie默認情況下已經在默認情況下(DateTime),我現在將它們設置爲類似於Datetime.now + 1周。我認爲它有所幫助,但在一段時間後,我仍然斷開連接,但它持續了更長的時間。我仍在尋找另一個想法。 – Lasty01 2013-04-20 23:35:38

+0

'default(DateTime)'應該暗示沒有到期;仍然發生的任何超時都是由於您的代碼丟棄了Cookie或服務器端過期。仔細檢查你是否在這個過程中丟失了HttpCookie對象。 – Zenexer 2013-04-20 23:39:24