public List <Cookie> Authenticate(string username, string password, int timeout = DefaultTimeoutInMilliseconds) { if (!NetworkInterface.GetIsNetworkAvailable()) { throw new LoginFailedException("The network is unavailable. Check your network settings and please try again."); } var request = AwfulWebRequest.CreatePostRequest(LOGIN_URL); var signal = new AutoResetEvent(false); var result = request.BeginGetRequestStream(callback => { signal.Set(); }, request); signal.WaitOne(); bool uploaded = UploadLoginData(result, username, password); if (!uploaded) { throw new LoginFailedException(); } List <Cookie> success = ProcessLoginResults(result.AsyncState as HttpWebRequest, timeout); if (success != null) { OnLoginSuccessful(this, username, success); } return(success); }
private bool SendPost(string postData, string url) { bool result = false; var signal = new AutoResetEvent(false); var httpRequest = AwfulWebRequest.CreatePostRequest(url); //Logger.AddEntry("Send Post start..."); // Synchronous Post Request! var state = httpRequest.BeginGetRequestStream(callback => { signal.Set(); }, httpRequest); signal.WaitOne(); BeginPostRequest(postData, state); // Synchronous Post Response! var request = state.AsyncState as WebRequest; state = request.BeginGetResponse(callback => { signal.Set(); }, request); signal.WaitOne(); result = ProcessPostResponse(state); return(result); }