public void _Update(SendJson send) { Id = send.Id; Type = send.Type ?? Type; FromUserId = send.FromUserId; ToUserId = send.ToUserId; MsgId = send.MsgId; FromTime = send.FromTime ?? FromTime; ToTime = send.ToTime ?? ToTime; }
/// <summary> /// 推送消息 /// </summary> /// <param name="parms"></param> /// <returns></returns> public RspJson Send(SendParms parms) { RspJson rspJson = new RspJson(); try { string ts = UMengHelper.GetTimeStamp(); SendJson json = new SendJson(); json.appkey = parms.key; json.timestamp = ts; json.type = parms.type; json.device_tokens = parms.deviceTokens; payload payload = new payload(); UMengHelper.policy policy = new UMengHelper.policy(); policy.expire_time = parms.expire_time.ToString("yyyy-MM-dd HH:mm:ss"); switch (parms.type) { //单播 case "unicast": policy.start_time = parms.start_time.ToString("yyyy-MM-dd HH:mm:ss"); break; //广播 case "broadcast": policy.start_time = parms.start_time.ToString("yyyy-MM-dd HH:mm:ss"); break; //组播 case "groupcast": policy.start_time = parms.start_time.ToString("yyyy-MM-dd HH:mm:ss"); json.filter = UMengHelper.GetFilterInfo(parms.CityCode, parms.Tag); break; default: // display_type = "notification"; break; } if (parms.platform == "ios" || parms.platform == "ipad") { payload.aps = new aps() { alert = parms.alert }; } json.policy = policy; payload.YGAction = parms.ygAction; json.payload = payload; json.production_mode = AppObjMrg.Config.UmengProduction; //是否生产环境-测试 json.description = parms.description; JsonSerializerSettings jsetting = new JsonSerializerSettings(); jsetting.DefaultValueHandling = DefaultValueHandling.Ignore; string str = JsonConvert.SerializeObject(json, Formatting.Indented, jsetting); string url = "http://msg.umeng.com/api/send"; string mysign = UMengHelper.getMD5Hash("POST" + url + str + parms.secret); url = url + "?sign=" + mysign; HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest; request.Method = "POST"; byte[] bs = Encoding.UTF8.GetBytes(str); request.ContentLength = bs.Length; using (Stream reqStream = request.GetRequestStream()) { reqStream.Write(bs, 0, bs.Length); reqStream.Close(); } HttpWebResponse response = (HttpWebResponse)request.GetResponse(); Stream stream = response.GetResponseStream(); StreamReader sr = new StreamReader(stream); string resStr = sr.ReadToEnd(); UMengHelper.ResponseUmeng res = JsonConvert.DeserializeObject <UMengHelper.ResponseUmeng>(resStr); if (res.ret == "SUCCESS") { rspJson.RspCode = 1; if (string.IsNullOrEmpty(res.data.msg_id)) { rspJson.RspMsg = res.data.task_id; } else { rspJson.RspMsg = res.data.msg_id; } LogManager.WriteAppWork("SendUmengSuccess", string.Format("友盟消息发送成功:body:{0}", str)); } else { rspJson.RspCode = 0; rspJson.RspMsg = res.data.error_code; LogManager.WriteAppError(ErrorLevel.High, string.Format("友盟发送失败,原因{0}", res.data.error_code)); } } catch (WebException e) { if (e.Status == WebExceptionStatus.ProtocolError) { Stream myResponseStream = ((HttpWebResponse)e.Response).GetResponseStream(); StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8")); string retString = myStreamReader.ReadToEnd(); LogManager.WriteAppError(ErrorLevel.High, string.Format("友盟发送异常,原因{0}", retString)); rspJson.RspCode = 2; rspJson.RspMsg = retString; } } return(rspJson); }
public object Any(SendJson request) { base.Response.AddHeader("X-Args", $"{request.Id},{request.Name}"); return(request.RequestStream.ReadFully()); }
public Send(SendJson send) { _Update(send); }
public async Task <object> Any(SendJson request) { base.Response.AddHeader("X-Args", $"{request.Id},{request.Name}"); return(await request.RequestStream.ReadFullyAsync()); }