我正在使用 HttpWebRequest 登录网站并获取 session cookie。我的应用程序抓取了某些页面,并最终变得空闲,导致 session 终止。
什么是防止这种情况发生的好方法? -只是好奇 - 网络浏览器是如何做到这一点的?
最佳答案
浏览器本身根本不这样做。只有当 Web 应用程序本身支持它时,他们才会这样做。例如,可能有一些 javascript 每隔 30 秒左右发出一次 AJAX 请求,以向服务器发送“keep-session-alive”类型的请求,然后服务器会更新其状态信息以反射(reflect)“最近的事件” "是现在,从而防止 session 超时。
但是,在上面的示例中,“客户端”(即浏览器中的 html/javascript)和“服务器”将被编写在一起,因此内置了这种类型的功能。
如果您不负责服务器端应用程序,因此无法自己构建“保持事件”功能,那么最好的选择是物理访问网页,浏览一下所有的 javascript 都试图找到可能的“保持事件”代码(在他们可能使用的任何 js 框架中查找 SetTimeout、SetInterval 或相关方法)。当然,可能没有任何此类功能,在这种情况下,您最好的选择是简单地“刷新”您所在的页面(即再次发送相同的请求)
关于c# - 保持 session 事件 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1881768/