private async Task <BaseRsp <T> > CallRpc <T>(string nodeName, BaseRpc postData) { try { var client = _httpClientFactory.CreateClient(nodeName); if (client?.BaseAddress == null) { return(new BaseRsp <T>() { success = false, error = 1404, msg = "找不到指定的节点", }); } var response = await client.PostAsync(client.BaseAddress, new StringContent(JsonConvert.SerializeObject(postData), Encoding.UTF8, "application/json")); if (response.StatusCode == System.Net.HttpStatusCode.OK) { var json = response.Content.ReadAsStringAsync().Result; var model = response.Content.ReadAsAsync <BaseRpcMsg <T> >().Result; return(new BaseRsp <T>() { success = model.error == null, error = model.error?.code ?? 0, msg = model.error?.message ?? null, data = model.result }); } else if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) { return(new BaseRsp <T>() { success = false, error = 400, msg = "用户鉴权失败", }); } else { return(new BaseRsp <T>() { success = false, error = 1404, msg = "远程服务发生错误", }); } } catch (Exception ex) { return(new BaseRsp <T>() { error = 1005, success = false, msg = ex.Message }); } }
/// <summary> /// 注销时清空用户信息 /// </summary> public static void ResetUser() { UserID = -1; UserName = null; UserPhone = null; UserPhoto = null; BaseRpc.RefreshHeader(); }
protected async Task <BaseRsp <T> > CallRpc <T>(NodeInfo node, BaseRpc postData) { try { var client = _httpClientFactory.CreateClient("TEMPNODE"); client.DefaultRequestHeaders.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Basic", Convert.ToBase64String(Encoding.UTF8.GetBytes(node.AuthInfo))); var response = await client.PostAsync(node.Url, new StringContent(JsonConvert.SerializeObject(postData), Encoding.UTF8, "application/json")); if (response.StatusCode == System.Net.HttpStatusCode.OK) { //var json = response.Content.ReadAsStringAsync().Result; var model = response.Content.ReadAsAsync <BaseRpcMsg <T> >().Result; return(new BaseRsp <T>() { success = model.error == null, error = model.error?.code ?? 0, msg = model.error?.message ?? null, data = model.result }); } else if (response.StatusCode == System.Net.HttpStatusCode.Unauthorized) { return(new BaseRsp <T>() { success = false, error = 400, msg = "用户鉴权失败", }); } else { return(new BaseRsp <T>() { success = false, error = 1404, msg = "远程服务发生错误", }); } } catch (Exception ex) { return(new BaseRsp <T>() { error = 1005, success = false, msg = ex.Message }); } }
/// <summary> /// 登录后初始化用户信息 /// </summary> /// <param name="p_result"></param> public static void InitUser(LoginResult p_result) { UserID = p_result.UserID; UserPhone = p_result.Phone; UserName = p_result.Name; UserPhoto = p_result.Photo; BaseRpc.RefreshHeader(); if (p_result.Contains("Version")) { UpdateDataVersion(p_result.Version); } LoginSuc?.Invoke(); }