private string ForceGetFromProfile(string id) { string url = "http://tbapi.ixiaochuan.cn/user/profile?sign=" + UtilHelper.GetTimeMD5(); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.ContentType = "application/json"; req.Accept = "*/*"; req.Method = "POST"; req.Host = "tbapi.ixiaochuan.cn"; req.UserAgent = "tieba/3.0.2 (iPhone; iOS 10.0.2; Scale/2.00)"; string data = "{\"mid\":" + id + ", \"h_ts\":" + UtilHelper.GetTimeStamp() + "}"; byte[] mybyte = Encoding.Default.GetBytes(data); req.ContentLength = mybyte.Length; using (Stream stream = req.GetRequestStream()) stream.Write(mybyte, 0, mybyte.Length); HttpWebResponse res = (HttpWebResponse)req.GetResponse(); StreamReader reader = new StreamReader(res.GetResponseStream(), Encoding.UTF8); string dat = reader.ReadToEnd(); res.Close(); reader.Close(); JObject j = JObject.Parse(dat); JObject jData = (JObject)j["data"]; JObject jInfo = (JObject)jData["member_info"]; return(jInfo["name"].ToString()); }
private void GetFollowing(List <User> newUsers, string offset, bool force) { Console.Write("."); string url = "http://tbapi.ixiaochuan.cn/attention/user_atts?sign=" + UtilHelper.GetTimeMD5(); HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url); req.ContentType = "application/json"; req.Accept = "*/*"; req.Method = "POST"; req.Host = "tbapi.ixiaochuan.cn"; req.UserAgent = "tieba/3.0.2 (iPhone; iOS 10.0.2; Scale/2.00)"; string data = "{\"mid\":" + _mid + ", \"offset\":" + offset + ", \"h_ts\":" + UtilHelper.GetTimeStamp() + "}"; byte[] mybyte = Encoding.Default.GetBytes(data); req.ContentLength = mybyte.Length; using (Stream stream = req.GetRequestStream()) stream.Write(mybyte, 0, mybyte.Length); HttpWebResponse res = (HttpWebResponse)req.GetResponse(); StreamReader reader = new StreamReader(res.GetResponseStream(), Encoding.UTF8); string dat = reader.ReadToEnd(); res.Close(); reader.Close(); JObject j = JObject.Parse(dat); JObject jData = (JObject)j["data"]; int more = int.Parse(jData.GetValue("more").ToString()); int next_offset = int.Parse(jData.GetValue("offset").ToString()); JArray list = (JArray)jData["list"]; foreach (JObject user in list) { string uid = user["id"].ToString(); string uname = user["name"].ToString(); if (force) { uname = ForceGetFromProfile(uid); } User u = new User(uname, uid); newUsers.Add(u); } Thread.Sleep(200); if (more == 1) { GetFollowing(newUsers, next_offset.ToString(), force); } }