次のコードでCookieContainerを再利用していますが、最初のリクエストではログインした後にリクエストにCookieコンテナを使用します。CookieContainerを再利用するときのセッションタイムアウトの決定方法
アイドル状態であれば一定の時間が経過した後、サイトでセッションタイムアウトが発生するため、再度ログインする必要があります。
Q:タイムアウトが発生した場合、または 'session timeout'のようなテキストが含まれているHttpWebResponseから発生したかどうかを判断するのが最善である場合は、Cookieコンテナオブジェクトを使用して判断できますか。これを行う最善の方法は何ですか?
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
}
これは動作しますが、あなたはあなたのクッキーが再び –