实体类:
public class userlist { public string total { get; set; } public string count { get; set; } public userlistopenid data { get; set; } public string next_openid { get; set; } }
登录后复制
public class userlistopenid { public List<string> openid { get; set; }</string>
登录后复制
public class userdetail { public int subscribe { get; set; } public string openid { get; set; } public string nickname { get; set; } public int sex { get; set; } public string language { get; set; } public string city { get; set; } public string province { get; set; } public string country { get; set; } public string headimgurl { get; set; } public int subscribe_time { get; set; } public string unionid { get; set; } public string remark { get; set; } public int groupid { get; set; } public int[] tagid_list { get; set; } }
登录后复制
getUser.aspx代码:
nbsp;html> <meta> <meta> <meta> <title></title> <!-- Bootstrap --> <link> <!--[if lt IE 9]> <script src="//cdn.bootcss.com/html5shiv/3.7.2/html5shiv.min.js"></script> <script src="//cdn.bootcss.com/respond.js/1.4.2/respond.min.js"></script> <![endif]-->
登录后复制
<script></script> <script></script>
public partial class getUser : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { } //获取用户列表 protected void btnGet_Click(object sender, EventArgs e) { string next_opid = string.Empty; string url = "https://api.weixin.qq.com/cgi-bin/user/get?access_token="+mainArg.get_Token()+"&next_openid="; HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); using (HttpWebResponse response = (HttpWebResponse)req.GetResponse()) { StreamReader sr = new StreamReader(response.GetResponseStream()); string result = sr.ReadToEnd(); sr.Close(); MyTest.Common.Entity.userlist userlist = MyTest.Common.Util.JsonEntityExchange<mytest.common.entity.userlist>.Json2Entity(result); //Response.Write(userlist.count + "/"+userlist.data+"/"+userlist.next_openid+"/"+userlist.total); ddlopenids.DataSource = userlist.data.openid; ddlopenids.DataTextField = ""; ddlopenids.DataValueField = ""; ddlopenids.DataBind(); ListItem item = new ListItem(); item.Text = "--请选择用户的openID--"; item.Value = "--0--"; ddlopenids.Items.Insert(0, item); } } //获取用户基本信息(包括UnionID机制) protected void ddlopenids_SelectedIndexChanged(object sender, EventArgs e) { string url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token="+ mainArg.get_Token() + "&openid="+ddlopenids.SelectedItem.Text+"&lang=zh_CN "; HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create(url); using (HttpWebResponse response = (HttpWebResponse)req.GetResponse()) { StreamReader sr = new StreamReader(response.GetResponseStream()); string result = sr.ReadToEnd(); sr.Close(); MyTest.Common.Entity.userdetail user= MyTest.Common.Util.JsonEntityExchange<mytest.common.entity.userdetail>.Json2Entity(result); lblMSG.Text = user.subscribe + "/" + user.openid + "/" + user.nickname + "/"; imgHead.ImageUrl = user.headimgurl; } } }</mytest.common.entity.userdetail></mytest.common.entity.userlist>
登录后复制
mainArg.cs获取accessToken帮助类:
public class mainArg { //测试号 public static string appid = "wx3eb5bf1290db2ca0"; public static string secret = "e6013be0a7338c7d3e02877db116e231"; public string jsapi_ticket; public string noncestr; public long timestamp; public string signature; private static string path = HttpContext.Current.Server.MapPath(@"~/TemplePath"); private static string tokenPath = HttpContext.Current.Server.MapPath(@"~/TemplePath/token.txt"); private static string ticketPath = HttpContext.Current.Server.MapPath(@"~/TemplePath/ticket.txt"); public mainArg() { noncestr = getNonceStr(); timestamp = getTime(); } /// <summary> /// 获取access_token /// </summary> /// <returns></returns> public static string get_Token() { string token = null; //判断是否存在或过期 if (File.Exists(tokenPath)) { FileStream fs = new FileStream(tokenPath, FileMode.Open); var serializer = new DataContractJsonSerializer(typeof(AccToken)); AccToken readJSToken = (AccToken)serializer.ReadObject(fs); fs.Close(); FileInfo fi = new FileInfo(tokenPath); if (CheckTimeOut(fi.LastWriteTime) /// 获取ticket /// /// <returns></returns> public string getTicket() { string ticket = null; // 判断是否存在或过期 if (File.Exists(ticketPath)) { FileStream fs = new FileStream(ticketPath, FileMode.Open); var serializer = new DataContractJsonSerializer(typeof(JsTicket)); JsTicket readJSTicket = (JsTicket)serializer.ReadObject(fs); fs.Close(); FileInfo fi = new FileInfo(ticketPath); if (CheckTimeOut(fi.LastWriteTime) <p>JSon序列化,反序列化</p><p class="jb51code"><br></p><pre class="brush:csharp;">public class JsonEntityExchange<t> where T:new() { /// <summary> /// json转实体LIST /// </summary> /// <param> /// <returns></returns> public static List<t> Json2Entitys(string JsonStr) { JavaScriptSerializer Serializer = new JavaScriptSerializer(); List<t> objs = Serializer.Deserialize<list>>(JsonStr); return objs; } /// <summary> /// json转实体 /// </summary> /// <param> /// <returns></returns> public static T Json2Entity(string json) { T obj = Activator.CreateInstance<t>(); using (MemoryStream ms = new MemoryStream(Encoding.UTF8.GetBytes(json))) { DataContractJsonSerializer serializer = new DataContractJsonSerializer(obj.GetType()); return (T)serializer.ReadObject(ms); } } /// <summary> /// 实体转json /// </summary> /// <param>实体list /// <returns></returns> public static string Entity2Json(List<t> lists) { return new JavaScriptSerializer().Serialize(lists); } }</t></t></list></t></t></t>
登录后复制
结果如图:
以上就是微信公众号查看关注者接口的.NET实例教程的详细内容,更多请关注GTHOST其它相关文章!