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); } }
private void GetOwnerID() { Console.WriteLine("获取方法"); UtilHelper.PrintGapLine(); Console.WriteLine("首先打开最右,找到一篇你发表的主题帖,分享至任意APP。从分享至的APP里复制该帖的链接,并截取id=后的数字粘贴至此。"); Console.WriteLine(); Console.WriteLine("请输入帖子ID,留空退出。"); string pidString = ""; int pid = -1; do { Console.Write("帖子ID:"); pidString = Console.ReadLine().Trim(); if (pidString == "") { return; } } while (!int.TryParse(pidString, out pid)); string url = "http://tbapi.ixiaochuan.cn/post/detail?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 = "{\"pid\":" + pid + "}"; 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); string ret = j["ret"].ToString(); if (ret.Trim() != "1") { Console.WriteLine(j["msg"].ToString()); Console.ReadKey(); return; } JObject jData = (JObject)j["data"]; JObject jPost = (JObject)jData["post"]; JObject jMember = (JObject)jPost["member"]; string memberID = jMember["id"].ToString(); string memberName = jMember["name"].ToString(); JObject owner = new JObject(); owner["id"] = memberID; owner["name"] = memberName; File.WriteAllText("config.json", owner.ToString(Newtonsoft.Json.Formatting.Indented)); _mid = memberID; Console.WriteLine("设置个人ID成功:" + memberName + "。"); }