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)));
                 }
         }
     }
 }