private Boolean LoginWebQQ(QQstatus status) { //* 成功JSON范例 //* {"retcode":0,"result":{"uin":QQ,"mode":"master","index":1056,"port":39085,"status":"online","vfwebqq":"80个字符","psessionid":"134个字符"}} var rs = "{0}\"status\":\"{1}\",\"ptwebqq\":\"{2}\",\"passwd_sig\":\"\",\"clientid\":\"{3}\",\"psessionid\":\"{4}\"{5}"; rs = String.Format(rs, "r={", status.ToString().ToLower(), Ptwebqq, Clientid, Psessionid, "}"); rs = String.Format("{0}&clientid={1}&psessionid={2}", rs, Clientid, Psessionid); //rs = HttpUtility.UrlDecode(rs, Encoding.UTF8); rs = CreateRequest("http://d.web2.qq.com/channel/login2", rs, true); //Console.Write("登陆WEB结果:"); //Console.WriteLine(rs); if (!rs.Contains("retcode\":0")) { badcount = 10; return(false); } dynamic jsonengine = new JavaScriptSerializer().DeserializeObject(rs); this.runinfo[5] = jsonengine["result"]["vfwebqq"].ToString(); this.runinfo[6] = jsonengine["result"]["psessionid"].ToString(); this.runinfo[9] = jsonengine["result"]["port"].ToString(); //post属性,屏蔽群用 this.runinfo[10] = jsonengine["result"]["index"].ToString(); //index属性,屏蔽群用 badcount = 0; timers.Start(); return(IsOnlines); }
/// <summary> /// 改变QQ状态 /// </summary> /// <param name="qqstaus">在线状态枚举</param> /// <returns>更改是否成功</returns> public Boolean ChangerStatus(QQstatus qqstaus) { using (var sre = new StreamReader(CreateRequest(String.Format("http://d.web2.qq.com/channel/change_status2?newstatus={0}&clientid={1}&psessionid={2}&t={3}&vfwebqq={4}", qqstaus.ToString().ToLower(), Clientid, Psessionid, getTime(DateTime.Now), Vfwebqq), String.Empty))) { return(sre.ReadToEnd().Contains("ok")); } }