2013-04-20 79 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