博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.net 实现微信公众平台的主动推送信息
阅读量:6715 次
发布时间:2019-06-25

本文共 2344 字,大约阅读时间需要 7 分钟。

protected void Page_Load(object sender, EventArgs e)

{          

    string padata = "username=用户名&pwd=md5的密码&imgcode=&f=json";//用于登录要发送的数据

            string url = " ";//请求登录的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 = "";

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

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

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

        webRequest2.Referer = "=" + 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);  

}

 

 

转载于:https://www.cnblogs.com/ytmom/archive/2013/04/23/3038808.html

你可能感兴趣的文章
端到端的超媒体REST API设计
查看>>
Microsoft的现代数据管理
查看>>
AI如何帮助亚马逊达成市值万亿美元成就?
查看>>
马化腾演讲、张勇内部讲话暴露两大巨头云上端倪
查看>>
.NET Core 3.0中的数据库驱动框架System.Data
查看>>
英特尔发布CPU新架构,突破性采用3D堆栈法
查看>>
Elixir 1.3带来新的语言功能、API和改进后的工具
查看>>
Pivotal发布包含反应式数据访问特性的新一代Spring Data的第一个里程碑版本
查看>>
Guava-Optional(译)
查看>>
最新的Java SE平台和JDK版本发布计划
查看>>
从使用场景学Git
查看>>
码农的黑客反击战
查看>>
[deviceone开发]-直播APP心形点赞动画示例
查看>>
React Native 中的 Android 原生模块
查看>>
微信小程序新蓝海全行业深度解析报告
查看>>
canvas初尝试之放大镜图标绘制
查看>>
LeetCode 189: Rotate Array (Java)
查看>>
node scribe中文编码问题
查看>>
Django权限使用总结
查看>>
互联网广告作弊的危害,以及如何反作弊
查看>>