C# 后端发送GET\POST请求(以企业微信发送消息为例)

用过企业微信的人应该都知道,如果我们要发送应用消息,首先需要用get方法获取到token,下面是后端发送get请求获取企业微信应用消息的方法:

string url = "https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=" + corpid + "&corpsecret=" + corpsecret;//corpid和corpsecret需要从企业微信后台管理里面拿到,具体方法可以看官方文档
                HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);
                myRequest.Method = "GET";
                HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
                StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
                string access_token_info = reader.ReadToEnd();//这里拿到我们get请求返回的参数,我们需要拿到token
                JObject jo = (JObject)JsonConvert.DeserializeObject(access_token_info);
                access_token = jo["access_token"].ToString();//这里把拿到的字符串消息转成JSON并且拿到其中的access_token
                reader.Close();

get请求方法本人也是参考网上的,也许还有更好更简洁的方法,如果有可以留言一起交流学习。

PS:access_token不要频繁的去拿,我们需要存到缓存(redis)中去,设置时效和官方的一样就好了,官方默认是7200秒也就是2小时。
拿到token之后,可以就需要发送post,给指定的用户发消息,具体发消息所需的参数可以见官方文档:
企业微信发送应用消息

string jsonInfo = "{\"touser\" : \"" + touser + "\"," +
                                        "\"toparty\" : \"" + toparty + "\"," +
                                        "\"totag\" : \"" + totag + "\"," +
                                        "\"msgtype\" : \"" + msgtype + "\"," +
                                        "\"agentid\" : " + agentid + "," +
                                        "\"text\" : {" +
                                        "\"content\" : \"" + text + "\"" +
                                            "}," +
                                        " \"safe\":" + safe + "," +
                                        "\"enable_id_trans\": " + enable_id_trans + "," +
                                        " \"enable_duplicate_check\": " + enable_duplicate_check + "," +
                                        "\"duplicate_check_interval\": " + duplicate_check_interval + "}";//post请求参数。JSON格式,,其中的变量自己定义值
                    var access_token = CacheHelper.GetObject<string>("access_token");//拿到缓存中的token
                    //这个if是缓存中的token时效过了之后需要重新获取的方法
                    if (string.IsNullOrEmpty(access_token))
                    {
                        bookBorrowBusiness.GetTokenByEnterpriseWechat();
                        access_token = CacheHelper.GetObject<string>("access_token");
                    }
                    var url = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + access_token;
                    UTF8Encoding encoding = new UTF8Encoding();//编码模式,防止中文乱码
                    byte[] data = encoding.GetBytes(jsonInfo);
                    HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(url);

                    myRequest.Method = "POST";
                    myRequest.ContentType = "application/json;charset=utf-8";
                    myRequest.ContentLength = data.Length;
                    Stream newStream = myRequest.GetRequestStream();
                    newStream.Write(data, 0, data.Length);
                    newStream.Close();
                    HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
                    StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.Default);
                    string content = reader.ReadToEnd();
                    reader.Close();
                    JObject jo = (JObject)JsonConvert.DeserializeObject(content);
                    int errcode = Convert.ToInt32(jo["errcode"].ToString());//如果发送成功,errcode返回0

这样我们就完成企业微信的应用消息推送了

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值