コード例 #1
0
        public AmexApi(IDictionary <string, string> credentials)
        {
            if (credentials == null || credentials.Count != 3)
            {
                throw new ArgumentException("Credentials for access to Cal are incorrect.");
            }

            _sessionInfo = new AmexSessionInfo();

            var credentialValues = credentials.Values.ToArray();

            _idNumber = credentialValues[0];
            var lastDigits = credentialValues[1];
            var password   = credentialValues[2];

            try
            {
                _sessionInfo.AntiForgeryToken = GetVerificationToken();
                ValidateId(_idNumber, lastDigits);
                Login(_idNumber, lastDigits, password);
            }
            catch (Exception exp)
            {
                throw new LoginException(Name, _idNumber)
                      {
                          Error = exp.Message
                      };
            }
        }
コード例 #2
0
        private void ExtractCookies(HttpResponseMessage response)
        {
            if (_sessionInfo == null)
            {
                _sessionInfo = new AmexSessionInfo();
            }

            IEnumerable <string> cookies = new List <string>();

            try
            {
                if (response.Headers != null && response.Headers.Contains("set-cookie"))
                {
                    cookies = response.Headers.GetValues("set-cookie");
                }
            }
            catch (Exception e)
            {
                Console.WriteLine(e);
            }

            if (cookies == null)
            {
                return;
            }

            foreach (var setValue in cookies)
            {
                var items = setValue.Split(';');
                foreach (var item in items)
                {
                    var nameValue = item.Split('=');

                    if (nameValue[0].Equals(Jsessionid))
                    {
                        _sessionInfo.Jsessionid = nameValue[1];
                    }
                    else if (nameValue[0].Equals(Alt50_ZLinuxPrd))
                    {
                        _sessionInfo.Alt50_ZLinuxPrd = nameValue[1];
                    }
                    else if (nameValue[0].Equals(ServiceP))
                    {
                        _sessionInfo.ServiceP = nameValue[1];
                    }
                    else if (nameValue[0].Equals(RequestVerificationToken))
                    {
                        _sessionInfo.RequestVerificationToken = nameValue[1];
                    }
                    else if (nameValue[0].Equals(AspDotNetSessionId))
                    {
                        _sessionInfo.AspDotNetSessionId = nameValue[1];
                    }
                }
            }
        }