/// <summary> /// get请求 /// </summary> /// <typeparam name="T">返回类型模型</typeparam> /// <param name="url">请求地址</param> /// <param name="par">请求参数</param> /// <param name="callBack">成功回调</param> /// <param name="feild">失败回调</param> /// <returns></returns> public Thread get <T>(String url, object par, NetworkCallBack <T> callBack, NetworkFeild feild) { Thread t = new Thread(new ThreadStart(() => { String geturl; if (par != null) { geturl = MapUtil.ModelToUriParam(par, url); } else { geturl = url; } if (!string.IsNullOrEmpty(SettingMenager.shard.token)) { if (!httpClient.DefaultRequestHeaders.Contains("imToken")) { httpClient.DefaultRequestHeaders.Add("imToken", SettingMenager.shard.token); } } try { _ = httpClient.GetAsync(geturl).ContinueWith(async res => { var result = res.Result; if (result.StatusCode == HttpStatusCode.OK) { var body = result.Content.ReadAsStringAsync().ConfigureAwait(true).GetAwaiter().GetResult(); callBack(JsonConvert.DeserializeObject <T>(body)); return; } else if (result.StatusCode == HttpStatusCode.NotImplemented) { feild(501); throw new ChangLiaoException("你还没有登录"); } else if (result.StatusCode == HttpStatusCode.BadGateway) { feild(502); throw new ChangLiaoException("身份验证失败"); } else { feild((int)result.StatusCode); throw new ChangLiaoException("链接服务器失败"); } }); } catch (Exception e) { } finally { } })); t.IsBackground = true; t.Start(); return(t); }
public void chooseSeat(int seatId, NetworkCallBack callBack) { NetWorkServices netWorkServices = NetWorkServices.getInstance(); ChooseSeatPacket packet = new ChooseSeatPacket(); packet.type = "CGI"; packet.command = "choose"; packet.seatID = seatId; string jsonStr = JSON.Dump(packet); Variant jsonObj = JSON.Load(jsonStr); netWorkServices.sendCGIRequest(jsonObj, callBack); }
public void setName(string name, NetworkCallBack callBack) { NetWorkServices netWorkServices = NetWorkServices.getInstance(); NamePacket packet = new NamePacket(); packet.name = name; packet.type = "CGI"; packet.command = "setName"; string jsonStr = JSON.Dump(packet); Variant jsonObj = JSON.Load(jsonStr); netWorkServices.sendCGIRequest(jsonObj, callBack); }
public void addListenerForSyncMessage(string command, NetworkCallBack callBack) { lock (PUSHCallbackMap) { if (PUSHCallbackMap.Contains(command)) { PUSHCallbackMap[command] = callBack; } else { PUSHCallbackMap.Add(command, callBack); } } }
public void sendCGIRequest(Variant message, NetworkCallBack callBack) { lock (CGICallbackMap) { if (CGICallbackMap.Contains((string)message["command"])) { CGICallbackMap[(string)message["command"]] = callBack; } else { CGICallbackMap.Add((string)message["command"], callBack); } } socketClient.sendMessage(message); }
public void setSeatsStatusCallBack(NetworkCallBack callBack) { NetWorkServices.getInstance().addListenerForSyncMessage("seatStatus", callBack); }