zoukankan      html  css  js  c++  java
  • .net 实现微信公众平台的主动推送信息

    protected void Page_Load(object sender, EventArgs e)
    {          

        string padata = "username=用户名&pwd=md5的密码&imgcode=&f=json";//用于登录要发送的数据
                string url = "http://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN ";//请求登录的URL
                try
                {
                    CookieContainer cc = new CookieContainer();//接收缓存
                    byte[] byteArray = Encoding.UTF8.GetBytes(padata); // 转化
                    HttpWebRequest webRequest2 = (HttpWebRequest)WebRequest.Create(url);
                    webRequest2.CookieContainer = cc;
                    webRequest2.Method = "POST";
                    webRequest2.ContentType = "application/x-www-form-urlencoded";

          webRequest2.Referer = "https://mp.weixin.qq.com/";
                    webRequest2.ContentLength = byteArray.Length;
                    Stream newStream = webRequest2.GetRequestStream();
                        // Send the data.
                    newStream.Write(byteArray, 0, byteArray.Length);    //写入参数
                    newStream.Close();
                    HttpWebResponse response2 = (HttpWebResponse)webRequest2.GetResponse();
                    StreamReader sr2=new StreamReader(response2.GetResponseStream(), Encoding.Default);
                    string text2 = sr2.ReadToEnd();            

                    //此处用到了newtonsoft来序列化。大家可以不用这个,也可以自己手动写代码
                    RetInfo retinfo=Newtonsoft.Json.JsonConvert.DeserializeObject<RetInfo>(text2);
                    string token = retinfo.ErrMsg.Split(new char[] { '&' })[2].Split(new char[]{'='})[1].ToString();//取得令牌
                    SendMessage(cc,token);
                }
                catch (Exception ex)
                {
                    throw new Exception(ex.StackTrace);
                }

    }

    public void SendMessage(CookieContainer cc, string token)        

    {                       

       string padate = "type=1&content=要发送的内容(注意要先进行Url编码)&error=false&tofakeid=22108785&token=" + token + "&ajax=1";  

           string url = "https://mp.weixin.qq.com/cgi-bin/singlesend?t=ajax-response&lang=zh_CN";

            byte[] byteArray = Encoding.UTF8.GetBytes(padate); // 转化

            HttpWebRequest webRequest2 = (HttpWebRequest)WebRequest.Create(url);

            webRequest2.CookieContainer = cc; //登录时得到的缓存

            webRequest2.Referer = "https://mp.weixin.qq.com/cgi-bin/singlemsgpage?token=" + token + "&fromfakeid=22108785&msgid=&source=&count=20&t=wxm-singlechat&lang=zh_CN";

           webRequest2.Method = "POST";

           webRequest2.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1";

            webRequest2.ContentType = "application/x-www-form-urlencoded";

             webRequest2.ContentLength = byteArray.Length; 

             Stream newStream = webRequest2.GetRequestStream();

            // Send the data.            

         newStream.Write(byteArray, 0, byteArray.Length);    //写入参数    

         newStream.Close();

         HttpWebResponse response2 = (HttpWebResponse)webRequest2.GetResponse();

         StreamReader sr2 = new StreamReader(response2.GetResponseStream(), Encoding.Default);

        string text2 = sr2.ReadToEnd();  

        Response.Write(text2);  

    }

  • 相关阅读:
    Ceres求解直接法BA实现自动求导
    栈溢出漏洞原理详解与利用
    【机器学习】使用CNN神经网络实现对图片分类识别及模型转换
    【Android】java中调用JS的方法
    5 项大奖,70 项满分!阿里云全方位引领云原生技术升级
    分布式系统架构与云原生—阿里云《云原生架构白皮书》导读
    Dubbo-go 发布 1.5 版,朝云原生迈出关键一步
    阿里产品专家:高情商的技术人,如何做沟通?
    CNCF 新增两个孵化项目 | 云原生生态周报 Vol. 58
    掌门教育微服务体系 Solar | 阿里巴巴 Nacos 企业级落地上篇
  • 原文地址:https://www.cnblogs.com/ytmom/p/3038808.html
Copyright © 2011-2022 走看看