【温馨提示】 本文共1678字,3张图。预计阅读时间需要5分钟。

有时候我们需要监控一些网络上的变化,但是每次去刷新网页却又很麻烦,而且大部分刷新的时候网页并没有更新。那么有没有一个工具,可以监控网页变化,并将变化的结果推送到手机微信上呢?

这里有很多应用场景,比如前一段时间很火的工具来监控JD、TB等口罩是否有货的状态、还有就是刷票、抢课、监听网页便也变化、爬虫等等。

我们可以在后台写一个监控程序,一旦口罩有货了,就立马推送消息到微信上。

有人会说这样的方式,微信公众号可以实现啊,那么为什么要你介绍?

不不不,注册微信公众号后,还要阅读官方的各种文档,反复调试,才能顺利实现这样的服务。

现在下面介绍的推送服务,可以我们可以调用一个简单的HTTP请求即可实现。

1. Server酱

介绍:

「Server酱」,英文名「ServerChan」,是一款「程序员」和「服务器」之间的通信软件。

说人话?就是从服务器推报警和日志到手机的工具。

开通并使用上它,只需要一分钟:

  1. 登入:用GitHub账号登入网站,就能获得一个SCKEY(在「发送消息」页面)
  2. 绑定:点击「微信推送」,扫码关注同时即可完成绑定
  3. 发消息:往 http://sc.ftqq.com/SCKEY.send 发GET请求,就可以在微信里收到消息啦

用法:

Server酱使用方法非常简单,向url发送一个Get/Post请求即可。

https://sc.ftqq.com/[SCKEY(登入后可见)].send

接受两个参数:

  • text:消息标题,最长为256,必填。
  • desp:消息内容,最长64Kb,可空,支持MarkDown。

最简单的消息发送方式是通过浏览器,在地址栏输入以下URL,回车后即可发送:

https://sc.ftqq.com/[SCKEY(登入后可见)].send?text=主人服务器又挂掉啦~

缺点:

发送后的消息内容不可以预览,需要点击进去才可以看见。作者说是收到很多人投诉,我也想不通,到底是哪些SB们投诉的。

MMP!

C#使用方法:

            //Server酱
var response = await httpClient.GetAsync("https://sc.ftqq.com/YourKey.send"
+ "?text=" + "测试标题" + DateTime.Now
+ "&desp=" + "测试内容" + DateTime.Now);
string res = await response.Content.ReadAsStringAsync();
Console.WriteLine("Server酱发送状态:" + response.StatusCode);
Console.WriteLine(res);

2. WxPusher

介绍:

微信消息推送服务(公众号:WxPusher)是通过API给个人微信发送消息的即时推送服务。

可能你有爬虫,刷票,抢课等服务,当他们的状态发生变更的时候,你可以通过简单的HTTP请求,通过WxPusher,把这些信息实时的推送到你的个人微信上。

WxPusher是免费且没有限制的,但是请注意不要推送敏感词!

用法:

1、关注微信公众号:开发者服务(wxpusher)

2、点击「我的ID」,获取到你的专属推送ID,使用这个ID给你自己发消息。

一个微信用户唯一对应一个ID,并且是不会变的,拥有这个ID就可以给对应的微信号发送消息,请注意不要泄漏。

3、通过HTTP接口,发送消息给微信。

缺点:

关注公众号后,还需要关注一下自己的应用二维码才可以,第一次接入稍微有点麻烦。但是API提供了丰富的服务,仔细阅读一般都可以调试通过。

官方的API说明有点混乱,首页说Post方法即将废弃,而在SDK页面却又推荐使用Post,说Get是阉割版。

C#代码:

            //WxPusher
//Post
var json = new WxPusherModel
{
appToken = "AT_xxxxxxxxxxxxx",
content = "测试WxPusher Post" + DateTime.Now,
contentType = ,
topicIds = new int[] { },
uids = new string[] { "UID_xxxx" },
};
string temp = JsonConvert.SerializeObject(json);
HttpContent content = new StringContent(temp, Encoding.UTF8, "application/json");
var response2 = await httpClient.PostAsync("http://wxpusher.zjiecode.com/api/send/message", content);
string res2 = await response2.Content.ReadAsStringAsync();
Console.WriteLine("WxPusher Post发送状态:" + response2.StatusCode);
Console.WriteLine(res2); //Get
string url = "http://wxpusher.zjiecode.com/api/send/message/?appToken=AT_xxxxx&uid=UID_xxxxx&content="
+ HttpUtility.UrlEncode("测试WxPusher Get");
var response3 = await httpClient.GetAsync(url);
string res3 = await response3.Content.ReadAsStringAsync();
Console.WriteLine("WxPusher Get发送状态:" + response3.StatusCode);
Console.WriteLine(res3);

3. 即时达

介绍:

通过调用一个简单的接口,将要推送的消息提交后,您将在微信收到推送的消息,简单快捷
可以应用的场景服务器重启,服务器异常信息推送,订单推送等各种可想到的推送
无需任何注册,只需要关注公众号“即时达推送”,即可及时收到推送的消息

使用方法:

  1. 先关注公众号“即时达推送”
  2. 请使用chrome浏览器访问http://push.ijingniu.cn
  3. 无需注册,直接微信扫码登入
  4. 创建消息通道,获得该通道的订阅二维码和通道Key
  5. 让你的用户扫码该通道的订阅二维码订阅该通道
  6. 调用API使用通道Key向该通道推送消息

同样支持Get/Post方法。

Get

http://push.ijingniu.cn/send?key=channelkey&head=msgHead&body=msgBody

说明:如遇到乱码请自行给相关参数编码,如果body太长请用POST方式

Post

http://push.ijingniu.cn/send

post参数: key=channelKey&head=msgHead&body=msgBody

C#代码:

//即时达
//Post
var nvc = new List<KeyValuePair<string, string>>();
nvc.Add(new KeyValuePair<string, string>("key", "xxxxx"));
nvc.Add(new KeyValuePair<string, string>("head", "测试即时达 Post"));
nvc.Add(new KeyValuePair<string, string>("body", "测试即时达 Post " + DateTime.Now));
var client = new HttpClient();
var request4 = new HttpRequestMessage(HttpMethod.Post, "http://push.ijingniu.cn/send") { Content = new FormUrlEncodedContent(nvc) };
var res4 = await client.SendAsync(request4);
Console.WriteLine("WxPusher Get发送状态:" + res4.StatusCode);
Console.WriteLine(await res4.Content.ReadAsStringAsync());
//Get
string url2 = "http://push.ijingniu.cn/send?key=xxxxxx&head="
+ HttpUtility.UrlEncode("测试即时达 Get")
+ "&body="
+ HttpUtility.UrlEncode("测试即时达" + DateTime.Now);
var response5 = await httpClient.GetAsync(url2);
string res5 = await response5.Content.ReadAsStringAsync();
Console.WriteLine("WxPusher Get发送状态:" + response5.StatusCode);
Console.WriteLine(res5);

o,对了,别忘了加上引用。

using System.Net.Http;

还有实例化一个client

var httpClient = new HttpClient();

4. 总结

感谢以上三种方法的原创作者,把原本复杂的微信推送服务变得非常简单。

具体哪一个好,需要看自己的需要来应用到自己的项目中。

免注册公众号的三种微信推送消息服务的C#代码实现的更多相关文章

  1. Java开发微信公众号(三)---微信服务器请求消息,响应消息,事件消息以及工具处理类的封装

    在前面几篇文章我们讲了微信公众号环境的配置 和微信公众号服务的接入,接下来我们来说一下微信服务器请求消息,响应消息以及事件消息的相关内容,首先我们来分析一下消息类型和返回xml格式及实体类的封装. ( ...

  2. Java开发微信公众号(四)---微信服务器post消息体的接收及消息的处理

    在前几节文章中我们讲述了微信公众号环境的搭建.如何接入微信公众平台.以及微信服务器请求消息,响应消息,事件消息以及工具处理类的封装:接下来我们重点说一下-微信服务器post消息体的接收及消息的处理,这 ...

  3. 转:C#微信公众号开发之接收事件推送与消息排重的方法

    本文实例讲述了C#微信公众号开发之接收事件推送与消息排重的方法.分享给大家供大家参考.具体分析如下: 微信服务器在5秒内收不到响应会断掉连接,并且重新发起请求,总共重试三次.这样的话,问题就来了.有这 ...

  4. NodeJs 开发微信公众号(三)微信事件交互

    微信公众号有个规则,一旦开启了开发者模式,其他的常规功能就都必须通过接口调用完成.比如说自定义菜单功能,必须通过发送post请求的方式生成.本章就通过关注到取消关注的整个过程来谈一谈nodejs是怎么 ...

  5. java-给微信推送消息 利用企业微信

    目的:给关注用户推送消息 场景:自动化测试,运维监控,接口访问等报错预警.例如线上接口报错,发送提醒消息 准备工作: 1:注册企业号(为什么不用公众号呢?) 企业号注册 2:常用参数介绍: 1:COR ...

  6. python使用微信推送消息

    from wxpy import * #该库主要是用来模拟与对接微信操作的 import requests from datetime import datetime import time impo ...

  7. php实现微信推送消息

    一.<?phpnamespace Org\Weixin;class OrderPush{ protected $appid; protected $secrect; protected $acc ...

  8. node-wechat 微信推送消息

    https://github.com/nswbmw/node-wechat/blob/master/index.js

  9. Java开发微信公众号(五)---微信开发中如何获取access_token以及缓存access_token

    获取access_token是微信api最重要的一个部分,因为调用其他api很多都需要用到access_token.比如自定义菜单接口.客服接口.获取用户信息接口.用户分组接口.群发接口等在请求的时候 ...

随机推荐

  1. Java编程风格节选

    3.3 import语句 3.3.1 import不要使用通配符 即,不要出现类似这样的import语句:import java.util.*; 3.3.2 不要换行 import语句不换行,列限制( ...

  2. Python---14面向对象高级编程(__slots__&@property)

    一.使用__slots__ 正常情况下,当我们定义了一个class,创建了一个class的实例后,我们可以给该实例绑定任何属性和方法,这就是动态语言的灵活性.先定义class: class Stude ...

  3. 第十届javaB(5)

    试题 E: 迷宫 本题总分:15 分[问题描述] 下图给出了一个迷宫的平面图,其中标记为 1 的为障碍,标记为 0 的为可 以通行的地方.010000 000100 001001 110000迷宫的入 ...

  4. centos7系统盘变为只读文件的修复

    一台物理机的系统盘在磁盘空间有剩余的情况下变为只读了,咨询后发现前几日修改过系统,然后就不可写了,重启也不行.见下图 解决:参考链接https://bbs.51cto.com/thread-92640 ...

  5. Pytorch随机种子

    最近在做比赛的时候,遇到了一个最好结果,但是之后无论怎样都复现不出来最好结果了.猜测是不是跟Pytorch中的随机种子有关. 训练过程 在训练过程中,若相同的数据数据集,相同的训练集.测试集划分方式, ...

  6. 机器学习迁移模型到IOS

    https://paulswith.github.io/2018/02/24/%E8%BF%81%E7%A7%BB%E5%AD%A6%E4%B9%A0InceptionV3/ 上文记录了如何从一个别人 ...

  7. word2vec的简单理解

    word2vec研究如何将词用向量表示,使用的两个重要模型--CBOW模型(Continuous Bag-of-Words Model)和Skip-gram模型(Continuous Skip-gra ...

  8. 阿里为何要用独立APP挖微信微商墙角?

    ​ 微商,这个被很多人看来是逃离马云魔咒,和淘宝抗衡的电商模式,自诞生到狂飙就伴随着种种争议.由于传播效率极强,在很长时间里也一直是不少人口中津津乐道的神话故事和救市良方.以至于,淘宝推出各种手段封杀 ...

  9. 正式学习MVC 02

    1.cookie 继续讲解MVC的内置对象cookie 相对不安全 1)保存cookie public ActionResult Index() { // 设置cookie以及过期时间 Respons ...

  10. Skeleton Screen加载占位图(内容出现前显示灰色占位图)的分析与实现

    今天有几个好友问了这个叫加载占位图的实现方法,我还在此问题下做了个回答.由于国内对这个的名词是各有各的叫法,所以这里直接用加载占位图来解释.相信很多人都看到过图中这样的加载方式: 这个图是一个国内知名 ...