첫 번째 요청에 로그인하는 CookieContainer를 다시 사용하지만 이후 요청에는 쿠키 컨테이너 만 사용하는 다음 코드를 작성했습니다.CookieContainer 재사용시 세션 시간 초과를 결정하는 방법
유휴 상태 인 경우 사이트에서 세션 시간 초과가 발생하면 로그인을 다시 수행해야합니다.
Q : (쿠키 컨테이너 객체를 사용하여) 시간 초과가 발생했는지 또는 'session timeout'과 같은 텍스트가 포함 된 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
}
이 작동해야하지만, 쿠키가 다시 –