【友盟+】开发者社区

可以直接用的C#示例

发表于 2015-8-4 11:05:45 | |阅读模式

友盟推送更新
友盟推送更新 发表于 2015-8-4 11:05:45 | 显示全部楼层 |阅读模式
本帖最后由 友盟推送更新 于 2015-8-4 17:29 编辑

这是一个ios广播的例子,直接替换里面的appkey和appMasterSecret就可以用了。感谢网友@浓眉大眼提供初始版本。


public class UmengDemo
{

    public static void post5()
    {
        try
        {
            string ts = GetTimeStamp();
            string str = "{\"appkey\":\"XXXXXXX\",\"timestamp\":" + ts + ",\"type\":\"broadcast\",\"payload\":{\"aps\":{ \"alert\":\"sucess\"}},\"policy\":{},\"production_mode\":\"false\",\"description\":\"xxx\"}";
///组播:
///string str = "{\"appkey\":\"XXXXXXXXXXXXXXXXXXXX\",\"timestamp\":" + ts +
///                ",\"type\":\"groupcast\",\"filter\":{\"where\":{\"and\":[{\"tag\":\"6\"}]}},\"payload\":{\"aps\":{ ///\"alert\":\"sucess++\",\"sound\":\"Notification\",\"badge\":1}},\"policy\":{},\"production_mode\":\"false\",\"description\":\"成功++\"}";
            string app_master_secret = "XXXXXXXXXX";
            string url = "http://msg.umeng.com/api/send"
            string mysign = getMD5Hash("POST" + url + str + app_master_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();
            HttpStatusCode statusCode = response.StatusCode;
        }
        catch (WebException e)
        {
            Console.WriteLine("This program is expected to throw WebException on successful run." +
                                "\n\nException Message :" + e.Message);
            if (e.Status == WebExceptionStatus.ProtocolError)
            {
                Console.WriteLine("Status Code : {0}", ((HttpWebResponse)e.Response).StatusCode);
                Console.WriteLine("Status Description : {0}", ((HttpWebResponse)e.Response).StatusDescription);
                Stream myResponseStream = ((HttpWebResponse)e.Response).GetResponseStream();
                StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));
                string retString = myStreamReader.ReadToEnd();
                Console.WriteLine("return content:", retString);
            }
        }
    }

    /// <summary>
    /// 计算MD5
    /// </summary>
    /// <param name="s"></param>
    /// <returns></returns>
    public static String getMD5Hash(String str)
    {
        MD5 md5 = new MD5CryptoServiceProvider();
        byte[] result = md5.ComputeHash(System.Text.Encoding.UTF8.GetBytes(str));
        StringBuilder strReturn = new StringBuilder();

        for (int i = 0; i < result.Length; i++)
        {
            strReturn.Append(Convert.ToString(result[    i   ], 16).PadLeft(2, '0'));
        }

        return strReturn.ToString().PadLeft(32, '0');

    }


        /// <summary>
        /// 获取时间戳
        /// </summary>
        /// <returns></returns>
        public static string GetTimeStamp()
        {
            TimeSpan ts = DateTime.UtcNow - new DateTime(1970, 1, 1, 0, 0, 0, 0);
            return Convert.ToInt64(ts.TotalSeconds).ToString();
        }

}



上一篇:推送的消息有时接收不到
下一篇:友盟调用api报错

您需要登录后才可以发帖 登录 | 立即注册

本版积分规则

发表主题

精彩推荐

OPPO手机:势头上扬,与vivo/华为贴面厮杀?
在技术、品牌、销量三方面,OPPO都表现不俗。在技术上,OPPO研究院成立,展开核心技术预研与储备,押宝5G/A
【友盟+】参与国内首个用户行为分析标准体系建设
4月18日,【友盟+】参与的国内首个大数据应用解决方案测评标准——用户行为分析标准发布,该标准由中国信息
有关“登录u-web失败问题“已于4月20日修复完毕!请周知!
4月18日我们收到部分用户反馈,登录U-Web统计后台页面无法正常打开。 针对该情况进行了紧急排查,发现是湖

关注我们

新浪微博
微信

欢迎关注友盟官方微博微信!

返回列表