J'ai le code suivant qui réutilise un CookieContainer qui se connecte à la première requête, mais qui utilise simplement le conteneur de cookies pour les demandes suivantes.Comment déterminer le délai d'attente de session lors de la réutilisation de CookieContainer
Après une période de temps si inactif le site donnera un délai de session, je devrai effectuer la connexion à nouveau. Q: Puis-je déterminer (avec l'objet conteneur de cookie) si le délai d'attente s'est écoulé ou est-il préférable de déterminer si cela s'est produit à partir de HttpWebResponse qui contient du texte comme 'session timeout'. Quelle est la meilleure façon de procéder?
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;
}
}
Et cette méthode appelle au conteneur:
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
}
Cela devrait fonctionner, mais rappelez-vous que vous déconnectera même si votre cookie n'a pas expiré –