/// <summary> /// 서버 통신 /// </summary> /// <typeparam name="T"></typeparam> /// <returns> 서버 통신의 결과값 </returns> public async Task <T> RestRequest <T>(string jsondata, QueryParam[] queryParams, Method method, string reosurces) //<t>는 받아오는 자료형에 따라서 변환해줌 { var restClient = new RestClient(ServerSetting.ServerUri); var request = new RestRequest(reosurces, method); if (!string.IsNullOrEmpty(Settings.Default.token)) { request.AddHeader("Authorization", Settings.Default.token); } else if (!string.IsNullOrEmpty(TokenModel.Get().token)) { request.AddHeader("Authorization", TokenModel.Get().token); } if (jsondata != null) { request.AddHeader("Content-Type", "application/json"); request.AddParameter("application/json", jsondata, ParameterType.RequestBody); } if (queryParams != null) { foreach (QueryParam queryParam in queryParams) { request.AddQueryParameter(queryParam.Key, queryParam.Value); } } var response = await restClient.ExecuteAsync <T>(request); // await = 위의 비동기 작업이 끝날때 까지 기다려줌 var result = JsonConvert.DeserializeObject <T>(response.Content); return(result); }
public async Task Login(string Id, string Password) { JObject jobj = new JObject(); jobj.Add("userId", Id); jobj.Add("password", Password); var loginResult = await restmanager.RestRequest <LoginModel>(jobj.ToString(), null, Method.POST, "/signIn"); TokenModel.Get().token = loginResult.token; if (loginResult.result == "1") { MessageBox.Show("로그인을 성공했습니다.", "SUCCESS"); LoginCheck.isValidAccess = true; if (Settings.Default.isALChecked == true) { Settings.Default.token = TokenModel.Get().token; Settings.Default.Save(); } } else { MessageBox.Show("아이디 혹은 비밀번호가 틀렸습니다.", "ERROR"); } }