public void LoginInit() { loginReturned = false; loginTimer = new DispatcherTimer(); lr = new LoginResponce(); loginTimer.Interval = TimeSpan.FromSeconds(10); }
public void GetGameInfo() { LoginInit(); GlobalVars.userid = 0; Uri loginPath = new Uri(GlobalVars.WebServer + "/gameinfo/liardice"); WebClient loginWC = new WebClient(); loginWC.Encoding = Encoding.UTF8; loginWC.DownloadStringCompleted += (sender, e) => { if (loginReturned) { return; } loginReturned = true; if (e.Error != null) { lr = new LoginResponce() { code = 404, content = new ResLoginContent() { message = e.Error.Message } }; } else { MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(e.Result)); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(LoginResponce)); lr = (LoginResponce)serializer.ReadObject(ms); } if (lr.code == 200) { loginSuccess(lr.content as ResLoginContent); } else { loginFailed(lr.content as ResLoginContent); } }; loginWC.DownloadStringAsync(loginPath); loginTimer.Tick += (sen, er) => { if (loginReturned) return; loginTimer.Stop(); loginReturned = true; lr = new LoginResponce() { code = 400, content = new ResLoginContent() { message = "连接服务器超时." } }; loginFailed(lr.content as ResLoginContent); }; loginTimer.Start(); }
public void Login(string username, string password, MainPage mp) { LoginInit(); GlobalVars.userid = 0; if (!CheckUserNameFormat(username)) { lr.code = 101; lr.content.message = "用户名格式不正确"; loginFailed(lr.content as ResLoginContent); return; } if (!CheckPasswordFormat(password)) { lr.code = 102; lr.content.message = "密码长度应为6—20"; loginFailed(lr.content as ResLoginContent); return; } password = GlobalVars.userRegisterHelper.GetMd5Hash(password); StringBuilder parameters = new StringBuilder(); parameters.AppendFormat("{0}={1}", "username", HttpUtility.UrlEncode(username)); parameters.AppendFormat("&{0}={1}", "password", HttpUtility.UrlEncode(password)); Uri loginPath = new Uri(GlobalVars.WebServer + "/login"); WebClient loginWC = new WebClient(); loginWC.Headers["Content-Type"] = "application/x-www-form-urlencoded"; loginWC.Encoding = Encoding.UTF8; loginWC.UploadStringCompleted += (sender, e) => { if (loginReturned) { return; } loginReturned = true; if (e.Error != null) { lr = new LoginResponce() { code = 404, content = new ResLoginContent() { message = e.Error.Message } }; } else { MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(e.Result)); DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(LoginResponce)); lr = (LoginResponce)serializer.ReadObject(ms); } if (lr.code == 200) { loginSuccess(lr.content as ResLoginContent); } else { loginFailed(lr.content as ResLoginContent); } }; loginWC.UploadStringAsync(loginPath, "POST", parameters.ToString()); loginTimer.Tick += (sen, er) => { if (loginReturned) return; loginTimer.Stop(); loginReturned = true; lr = new LoginResponce() { code = 400, content = new ResLoginContent() { message = "连接服务器超时." } }; loginFailed(lr.content as ResLoginContent); }; loginTimer.Start(); }