我有下面的代碼重新使用CookieContainer登錄第一個請求,但只是使用cookie容器請求後。如何確定重新使用CookieContainer時使用會話超時
經過一段時間如果閒置網站會給會話超時,我將需要再次執行登錄。
問:我可以確定(使用cookie容器對象)超時是否已發生,還是最好確定是否發生了包含像「會話超時」之類的文本的HttpWebResponse。做這個的最好方式是什麼?
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
}
這應該工作,但要記住,你可能會被註銷,即使你的cookie尚未到期再 – 2009-06-25 07:21:04