예제 #1
0
        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());
        }
예제 #2
0
        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);
            }
        }