void HandleResponse(RequestCompletedArgs result) { if (result.Success) { SessionID = Uri.EscapeDataString(Regex.Match(result.RawData, "AObGSA.*:\\d+").Value); UserID = Regex.Match(result.RawData, "oid=\"(\\d+)\"").Groups[1].Value; if (SessionID != "" && UserID != "") { App.Settings.AddOrUpdateValue("Logged", true); App.UIDispatcher.BeginInvoke(() => _callback(true)); } else App.UIDispatcher.BeginInvoke(() => _callback(false)); } else { MessageBox.Show("Please check your network", "Can't reach Google, app will exit now.", MessageBoxButton.OK); throw new Exception("ExitAppException"); } }
private void HandleResponse(IAsyncResult result) { try { if (_callback != null) { using (HttpWebResponse response = (HttpWebResponse)_request.EndGetResponse(result)) using (Stream responseStream = response.GetResponseStream()) using (StreamReader reader = new StreamReader(responseStream)) { string rawData = reader.ReadToEnd(); RequestCompletedArgs args; if (rawData.StartsWith(")]}'")) { args = new RequestCompletedArgs(true, rawData, response, JArray.Parse(rawData.Substring(6))); } else if (rawData.StartsWith("[")) { args = new RequestCompletedArgs(true, rawData, response, JArray.Parse(rawData)); } else { args = new RequestCompletedArgs(true, rawData, response); } App.UIDispatcher.BeginInvoke(() => _callback(args)); } } } catch (WebException ex) { if (_callback != null && ex.Status == WebExceptionStatus.UnknownError) { using (Stream responseStream = ex.Response.GetResponseStream()) using (StreamReader reader = new StreamReader(responseStream)) { string rawData = reader.ReadToEnd(); App.UIDispatcher.BeginInvoke(() => _callback(new RequestCompletedArgs(false, rawData, (HttpWebResponse)ex.Response))); } } } }