LiveCodingChat.WinLiveLogin.EndGetResponse C# (CSharp) Метод

EndGetResponse() приватный Метод

private EndGetResponse ( IAsyncResult res ) : void
res IAsyncResult
Результат void
        private void EndGetResponse(IAsyncResult res)
        {
            object[] obj = (object[])res.AsyncState;
            string username = (string)obj[1], password = (string)obj[2];
            CookieContainer cookies = (CookieContainer)obj[3];

            HttpWebRequest request = (HttpWebRequest)obj[0];
            HttpWebResponse response = (HttpWebResponse)request.EndGetResponse(res);
            if (response.StatusCode == HttpStatusCode.Found) {

                request = (HttpWebRequest)HttpWebRequest.Create(response.Headers["Location"]);
                request.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10240";
                request.CookieContainer = cookies;
                request.AllowAutoRedirect = false;
                request.Referer = response.ResponseUri.ToString();
                request.Headers ["Upgrade-Insecure-Requests"] = "1";
                request.BeginGetResponse(EndGetResponse, new object[] { request, username, password, cookies });
                return;
            }
            string data;
            using (System.IO.StreamReader sr = new System.IO.StreamReader(response.GetResponseStream()))
            {
                data = sr.ReadToEnd();
            }

            LoginWinLive(username, password, data, ref cookies);
        }