实体类:
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实例教程的详细内容,更多请关注米云其它相关文章!
