- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有以下代码,它重新使用在第一个请求时登录的 CookieContainer,但在之后的请求中只使用 cookie 容器。
一段时间后,如果网站空闲,会出现 session 超时,我将需要再次执行登录。
问:我能否(使用 cookie 容器对象)确定超时是否发生,或者最好从 HttpWebResponse 中确定它是否发生,而 HttpWebResponse 恰好包含诸如“ session 超时”之类的文本。做这个的最好方式是什么?
private static CookieContainer _cookieContainer;
private static CookieContainer CurrentCookieContainer
{
get
{
if (_cookieContainer == null || _cookieContainer.Count == 0)
{
lock (_lock)
{
if (_cookieContainer == null || _cookieContainer.Count == 0)
{
//_cookieContainer.GetCookies(
_cookieContainer = DoLogin();
}
}
}
return _cookieContainer;
}
set
{
_cookieContainer = value;
}
}
public static string SomeMethod(SomeParams p)
{
HttpWebRequest request_thirdPartyEnquiryDetails = (HttpWebRequest)WebRequest.Create(thirdPartyEnquiryDetails);
CookieContainer cookieContainer = CurrentCookieContainer;
request_thirdPartyEnquiryDetails.CookieContainer = cookieContainer;
//... and it goes on to submit a search and return the response
}
最佳答案
好吧,由于超时是 30 分钟,我已将登录设置为在 25 分钟后重复。
private static DateTime? lastLoggedIn;
private static CookieContainer _cookieContainer;
private static CookieContainer CurrentCookieContainer
{
get
{
if (_cookieContainer == null || _cookieContainer.Count == 0 || !lastLoggedIn.HasValue || lastLoggedIn.Value.AddMinutes(25) < DateTime.Now)
{
lock (_lock)
{
if (_cookieContainer == null || _cookieContainer.Count == 0 || !lastLoggedIn.HasValue || lastLoggedIn.Value.AddMinutes(25) < DateTime.Now)
{
_cookieContainer = DoLogin();
lastLoggedIn = DateTime.Now;
}
}
}
return _cookieContainer;
}
set
{
_cookieContainer = value;
}
}
关于asp.net - 重用 CookieContainer 时如何确定 session 超时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1041851/
需要向需要特定 cookie 的服务器发出请求。能够使用带有 cookiecontainer 的 HTTP 客户端和处理程序来做到这一点。通过使用 Typed 客户端,无法找到设置 cookiecon
我想清除我的 CookieContainer 中的所有 cookie。如果我这样做: CookieContainer cookieContainer = new CookieContainer();
例如,在 .NET 2.0 项目上将 WebService 引用添加到 ASMX 服务时, var objService = new NameSpace.groupservices(); 存在, ob
我对 CookieContainer 如何处理域感到困惑,所以我创建了这个测试。此测试显示 cookieContainer 不会为“example.com”返回任何 cookie,但根据 RFC,它应
我想清除 CookieContainer 中收到的所有 cookie,而不需要初始化新的 CookieContainer、HttpClientHandler 和 HttpClient。有办法吗?我检查
我尝试使用循环来循环 cookie 容器,但它返回错误。如何将 CookieContainer 正确转换为 string foreach (Cookie item in cookieContainer
根据 MSDN CookieContainer.SetCookies应该 Adds Cookie instances for one or more cookies from an HTTP cook
我最近遇到了 CookieContainer 的一些问题。要么是我做错了什么,要么是 CookieContainer 对象存在某种错误。它似乎没有使用某些 Set-Cookie header 更新 c
我正在使用 WebClient 登录 Wordpress 博客,我的 Web 客户端方法: protected override WebRequest GetWebRequest(Uri addres
鉴于 CookieContainer 的实例是 not thread safe . Any public static (Shared in Visual Basic) members of this
如何在一个网站上冲浪,为每个网络请求分配相同的 CookieContainer? 最佳答案 这是我几年前写的类(class)。它不是很完整,并且在我完全理解一切是如何工作之前完成的(例如,它没有正确编
我是不是遗漏了什么,或者这是 CookieContainer 中的错误? 我正在向容器中添加 3 个 cookie,然后我为 2 个 url 调用 GetCookieHeader 函数: Cookie
我正在尝试使用 WebClient 在西里尔域名上执行授权。授权经过几个阶段,在普通域和 punicode 域之间进行重定向。问题是如果 HttpWebRequest 是由 punycode 域设置的
我有一个从名为 CookieJar 的 HttpWebRequest/HttpWebResponse session 中提取的 CookieContainer。我希望我的应用程序在运行之间存储 coo
此 answer显示如何将 cookie 添加到 HttpClient 请求。但其中一条评论警告说 CookieContainer缓存在 HttpClient 上。我的大部分 cookie 不应再次发
由于 .Net 中的 GeckoWebBrowser 与所有其他 GeckoWebBrowsers 实例共享 cookie,我希望 GeckoWebBrowser 拥有自己的 cookie 容器,该容
当我使用 HttpWebRequest 并添加: CookieContainer container = new CookieContainer(); request.CookieContainer
我的登录程序遇到了问题。如果我登录一次,然后将 CookieContainer 和 CookieCollection(以及我的 http 类)设置为 null,然后尝试再次登录,它仍然会提交来自第一个
您好,我在设置一个 cookie 时遇到了一些小问题。我正在使用 HttpWebRequest 类来发送我的请求。以及我需要的设置 cookie 的代码: CookieContainer my
我正在从事一个涉及一些基本网络爬行的项目。我一直在非常成功地使用 HttpWebRequest 和 HttpWebResponse。对于 cookie 处理,我只有一个 CookieContainer
我是一名优秀的程序员,十分优秀!