一、获取自己的appToken:接创建应用WxPusher微信推送服务
二、代码部分 傻瓜式教程,全程把appToken替换即可
private void button1_Click(object sender, EventArgs e)
{
//此部分为获取用户uid
//要访问的接口地址
//此处要把appToken=后面的替换为自己的appToken
String Url = "http://wxpusher.zjiecode.com/api/fun/wxuser/v2?appToken=用自己的appToken&page=1&pageSize=10"; //GET请求
//存储接口返回的数据
string result = "";
//Web请求
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(Url);
req.Method = "GET";//请求方式
req.ContentLength = 0;//一定要添加这句
//获取接口返回值
HttpWebResponse resp = (HttpWebResponse)req.GetResponse();
//以流的方式读取返回的数据
Stream stream = resp.GetResponseStream();
//获取内容
using (StreamReader reader = new StreamReader(stream, Encoding.UTF8))
{
result = reader.ReadToEnd();//如果接口返回的是json字符串,那么这里就是对应的json字符串
}
//解析返回的json数据
JObject obj = Newtonsoft.Json.Linq.JObject.Parse(result);
JObject oo = Newtonsoft.Json.Linq.JObject.Parse(obj.GetValue("data").ToString());
string PostUrl = "http://wxpusher.zjiecode.com/api/send/message";
string appToken = "用自己的appToken"; //自己的appToken
string content = "小崽子在干嘛呢";//内容
string summary = "哈喽";//标题
string contentType = "1";//1代表发送内容为文字
JObject patientinfo = new JObject();
//创建uids数组 发送多人
JArray uids = new JArray();
for (int i = 0; i <oo.Count-1; i++)
{
uids.Add(oo["records"][i]["uid"].ToString());
}
patientinfo["uids"] = uids;
patientinfo["appToken"] = appToken;
patientinfo["content"] = content;
patientinfo["summary"] = summary;
patientinfo["contentType"] = contentType;
string sendData = JsonConvert.SerializeObject(patientinfo);
//eg: 发送Url需要的格式:sendData={"ids":[123],"Name":小黑}
string resultData = Post(sendData, PostUrl);
}
public string Post(string parameterData, string serviceUrl, string ContentType = "application/json", string Accept = "application/json")
{
//先根据用户请求的uri构造请求地址
//string serviceUrl = string.Format("{0}/{1}", this.BaseUri, uri);
//创建Web访问对象
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create(serviceUrl);
//把用户传过来的数据转成“UTF-8”的字节流
byte[] buf = System.Text.Encoding.GetEncoding("UTF-8").GetBytes(parameterData);
myRequest.Method = "POST";
//myRequest.Accept = "application/json";
//myRequest.ContentType = "application/json"; // //Content-Type: application/x-www-form-urlencoded
myRequest.AutomaticDecompression = DecompressionMethods.GZip;
myRequest.Accept = Accept;
//myRequest.ContentType = ContentType;
myRequest.ContentType = "application/json; charset=UTF-8";
myRequest.ContentLength = buf.Length;
myRequest.MaximumAutomaticRedirections = 1;
myRequest.AllowAutoRedirect = true;
//myRequest.Headers.Add("content-type", "application/json");
//myRequest.Headers.Add("accept-encoding", "gzip");
//myRequest.Headers.Add("accept-charset", "utf-8");
//发送请求
Stream stream = myRequest.GetRequestStream();
stream.Write(buf, 0, buf.Length);
stream.Close();
//通过Web访问对象获取响应内容
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
//通过响应内容流创建StreamReader对象,因为StreamReader更高级更快
StreamReader reader = new StreamReader(myResponse.GetResponseStream(), Encoding.UTF8);
//string returnXml = HttpUtility.UrlDecode(reader.ReadToEnd());//如果有编码问题就用这个方法
string returnData = reader.ReadToEnd();//利用StreamReader就可以从响应内容从头读到尾
reader.Close();
myResponse.Close();
return returnData;
}