示例#1
0
        public override QQHttpRequest OnBuildRequest()
        {
/*
 *          retype:1 app:EQQ
 *          itemlist:{"groupmask":{"321105219":"1","1638195794":"0","cAll":0,"idx":1075,"port":37883}}
 *          vfwebqq:8b26c442e239630f250e1e74d135fd85ab78c38e7b8da1c95a2d1d560bdebd2691443df19d87e70d
 */
            QQStore       store   = Context.Store;
            QQSession     session = Context.Session;
            QQHttpRequest req     = CreateHttpRequest("POST", QQConstants.URL_GROUP_MESSAGE_FILTER);

            req.AddPostValue("retype", "1");    // 群???
            req.AddPostValue("app", "EQQ");

            JObject groupmask = new JObject();

            groupmask.Add("cAll", 0);
            groupmask.Add("idx", session.Index);
            groupmask.Add("port", session.Port);
            foreach (QQGroup g in store.GetGroupList())
            {
                if (g.Gin > 0)
                {
                    groupmask.Add(g.Gin + "", g.Mask + "");
                }
            }
            JObject itemlist = new JObject();

            itemlist.Add("groupmask", groupmask);
            req.AddPostValue("itemlist", itemlist.ToString());
            req.AddPostValue("vfwebqq", Context.Session.Vfwebqq);
            return(req);
        }
示例#2
0
        /// <summary>
        /// 构造方法,初始化模块和服务
        /// </summary>
        /// <param name="username">账号</param>
        /// <param name="password">密码</param>
        /// <param name="notifyListener">监听器</param>
        /// <param name="actorDispatcher">线程执行器</param>
        public WebQQClient(string username, string password,
                           QQNotifyHandler notifyListener, IQQActorDispatcher actorDispatcher)
        {
            _modules  = new Dictionary <QQModuleType, IQQModule>();
            _services = new Dictionary <QQServiceType, IQQService>();

            _modules.Add(QQModuleType.LOGIN, new LoginModule());
            _modules.Add(QQModuleType.PROC, new ProcModule());
            _modules.Add(QQModuleType.USER, new UserModule());
            _modules.Add(QQModuleType.BUDDY, new BuddyModule());
            _modules.Add(QQModuleType.CATEGORY, new CategoryModule());
            _modules.Add(QQModuleType.GROUP, new GroupModule());
            _modules.Add(QQModuleType.CHAT, new ChatModule());
            _modules.Add(QQModuleType.DISCUZ, new DiscuzModule());
            _modules.Add(QQModuleType.EMAIL, new EmailModule());
            _services.Add(QQServiceType.HTTP, new HttpService());

            Account = new QQAccount
            {
                Username = username,
                Password = password
            };
            Session          = new QQSession();
            Store            = new QQStore();
            NotifyListener   = notifyListener;
            _actorDispatcher = actorDispatcher;

            Init();
        }
示例#3
0
        public override void OnHttpStatusOK(QQHttpResponse response)
        {
            //{"retcode":0,"result":{"uin":236557647,"cip":1991953329,"index":1075,"port":51494,"status":"online","vfwebqq":"41778677efd86bae2ed575eea02349046a36f3f53298a34b97d75297ec1e67f6ee5226429daa6aa7","psessionid":"8368046764001d636f6e6e7365727665725f77656271714031302e3133332e342e31373200005b9200000549016e04004f95190e6d0000000a4052347371696a62724f6d0000002841778677efd86bae2ed575eea02349046a36f3f53298a34b97d75297ec1e67f6ee5226429daa6aa7","user_state":0,"f":0}}

            string    str     = response.GetResponseString();
            JObject   json    = JObject.Parse(str);
            QQSession session = Context.Session;
            QQAccount account = Context.Account;

            if (json["retcode"].ToString() == "0")
            {
                JObject ret = json["result"].ToObject <JObject>();
                account.Uin       = ret["uin"].ToObject <long>();
                account.QQ        = ret["uin"].ToObject <long>();
                session.SessionId = ret["psessionid"].ToString();
                session.Vfwebqq   = ret["vfwebqq"].ToString();
                account.Status    = QQStatus.ValueOfRaw(ret["status"].ToString());
                session.State     = QQSessionState.ONLINE;
                session.Index     = ret["index"].ToObject <int>();
                session.Port      = ret["port"].ToObject <int>();
                NotifyActionEvent(QQActionEventType.EVT_OK, null);
            }
            else
            {
                NotifyActionEvent(QQActionEventType.EVT_ERROR, new QQException(QQErrorCode.INVALID_RESPONSE));  //TODO ..
            }
        }
示例#4
0
        public override QQHttpRequest OnBuildRequest()
        {
            IHttpService httpService = Context.GetSerivce <IHttpService>(QQServiceType.HTTP);
            QQSession    session     = Context.Session;
            Random       rand        = new Random();

            if (session.ClientId == 0)
            {
                session.ClientId = new Random().Next(1000000, 9999999); //random??
            }

            JObject json = new JObject();

            json.Add("ptwebqq", httpService.GetCookie("ptwebqq", QQConstants.URL_CHANNEL_LOGIN).Value);
            json.Add("clientid", session.ClientId.ToString());
            json.Add("psessionid", session.SessionId);
            json.Add("status", _status.Value);
            json.Add("passwd_sig", "");
            QQHttpRequest req = CreateHttpRequest("POST", QQConstants.URL_CHANNEL_LOGIN);

            req.AddPostValue("r", JsonConvert.SerializeObject(json));
            req.AddPostValue("clientid", session.ClientId + "");
            req.AddPostValue("psessionid", session.SessionId ?? "null");
            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession     session = Context.Session;
            QQHttpRequest req     = CreateHttpRequest("GET",
                                                      QQConstants.URL_GET_SESSION_MSG_SIG);

            if (user is QQGroupMember)
            {
                QQGroupMember mb = user as QQGroupMember;
                mb.ServiceType = 0;
                req.AddGetValue("id", mb.Group.Gin + "");
                req.AddGetValue("service_type", "0"); // 0为群,1为讨论组
            }
            else if (user is QQDiscuzMember)
            {
                QQDiscuzMember mb = (QQDiscuzMember)user;
                mb.ServiceType = 1;
                req.AddGetValue("id", mb.Discuz.Did + "");
                req.AddGetValue("service_type", "1"); // 0为群,1为讨论组
            }
            else
            {
                // LOG.info("GetSessionMsgSigAction unknow type :" + user);
            }
            req.AddGetValue("to_uin", user.Uin + "");
            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("psessionid", session.SessionId);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");
            return(req);
        }
示例#6
0
        /// <summary>
        /// 构造方法,初始化模块和服务
        /// </summary>
        ///// <param name="username">账号(二维码登录留空)</param>
        ///// <param name="password">密码(二维码登录留空)</param>
        /// <param name="notifyListener">监听器</param>
        /// <param name="actorDispatcher">线程执行器</param>
        /// <param name="logger">日志记录器</param>
        public WebQQClient(QQNotifyListener notifyListener    = null,
                           IQQActorDispatcher actorDispatcher = null, IQQLogger logger = null)
        {
            _modules  = new Dictionary <QQModuleType, IQQModule>();
            _services = new Dictionary <QQServiceType, IQQService>();

            _modules.Add(QQModuleType.LOGIN, new LoginModule());
            _modules.Add(QQModuleType.PROC, new ProcModule());
            _modules.Add(QQModuleType.USER, new UserModule());
            _modules.Add(QQModuleType.BUDDY, new BuddyModule());
            _modules.Add(QQModuleType.CATEGORY, new CategoryModule());
            _modules.Add(QQModuleType.GROUP, new GroupModule());
            _modules.Add(QQModuleType.CHAT, new ChatModule());
            _modules.Add(QQModuleType.DISCUZ, new DiscuzModule());
            _modules.Add(QQModuleType.EMAIL, new EmailModule());
            _services.Add(QQServiceType.HTTP, new HttpService());

            Account = new QQAccount
            {
                Username = string.Empty,
                Password = string.Empty
            };
            Session          = new QQSession();
            Store            = new QQStore();
            NotifyListener   = notifyListener;
            _actorDispatcher = actorDispatcher ?? new SimpleActorDispatcher();
            Logger           = logger ?? new EmptyQQLogger();
            Logger.Context   = this;
            Init();
        }
示例#7
0
        public override QQHttpRequest OnBuildRequest()
        {
            // r:{"to":2982077931,"face":0,"content":"[\"123\",[\"face\",1],\"456\",[\"face\",0],\"\",\"\\n【提示:此用户正在使用Q+ Web:http://web.qq.com/】\",[\"font\",{\"name\":\"微软雅黑\",\"size\":\"11\",\"style\":[0,0,0],\"color\":\"ffcc99\"}]]","msg_id":91310001,"clientid":"74131454","psessionid":"8368046764001e636f6e6e7365727665725f77656271714031302e3133332e34312e3230320000230700001f01026e04002aafd23f6d0000000a40484a526f4866467a476d00000028d954c71693cd99ae8c0c64b651519e88f55ce5075140346da7d957f3abefb51d0becc25c425d7cf5"}
            // r:{"group_uin":3408869879,"content":"[\"群消息发送测试\",[\"face\",13],\"\",\"\\n【提示:此用户正在使用Q+ Web:http://web.qq.com/】\",[\"font\",{\"name\":\"微软雅黑\",\"size\":\"11\",\"style\":[0,0,0],\"color\":\"ffcc99\"}]]","msg_id":91310002,"clientid":"74131454","psessionid":"8368046764001e636f6e6e7365727665725f77656271714031302e3133332e34312e3230320000230700001f01026e04002aafd23f6d0000000a40484a526f4866467a476d00000028d954c71693cd99ae8c0c64b651519e88f55ce5075140346da7d957f3abefb51d0becc25c425d7cf5"}
            // clientid、psessionid

            QQSession     session = Context.Session;
            JObject       json    = new JObject();
            QQHttpRequest req     = null;

            if (msg.Type == QQMsgType.BUDDY_MSG)
            {
                req = CreateHttpRequest("POST", QQConstants.URL_SEND_BUDDY_MSG);
                json.Add("to", msg.To.Uin);
                json.Add("face", 0); // 这个是干嘛的??
            }
            else if (msg.Type == QQMsgType.GROUP_MSG)
            {
                req = CreateHttpRequest("POST", QQConstants.URL_SEND_GROUP_MSG);
                json.Add("group_uin", msg.Group.Gin);
                json.Add("key", session.CfaceKey);
                json.Add("sig", session.CfaceSig);
            }
            else if (msg.Type == QQMsgType.DISCUZ_MSG)
            {
                req = CreateHttpRequest("POST", QQConstants.URL_SEND_DISCUZ_MSG);
                json.Add("did", msg.Discuz.Did);
                json.Add("key", session.CfaceKey);
                json.Add("sig", session.CfaceSig);
            }
            else if (msg.Type == QQMsgType.SESSION_MSG)
            {   // 临时会话消息
                req = CreateHttpRequest("POST", QQConstants.URL_SEND_SESSION_MSG);
                QQStranger member = (QQStranger)msg.To;
                json.Add("to", member.Uin);
                json.Add("face", 0); // 这个是干嘛的??
                json.Add("group_sig", member.GroupSig);
                json.Add("service_type", member.ServiceType + "");
            }
            else
            {
                MyLogger.Default.Warn("unknown MsgType: " + msg.Type);
            }

            json.Add("content", msg.PackContentList());
            json.Add("msg_id", ++_msgId);
            json.Add("clientid", session.ClientId);
            json.Add("psessionid", session.SessionId);

            req.AddPostValue("r", JsonConvert.SerializeObject(json));
            req.AddPostValue("clientid", session.ClientId + "");
            req.AddPostValue("psessionid", session.SessionId);
            req.AddHeader("Referer", QQConstants.REFFER);

            // System.out.println("sendMsg: " + JsonConvert.SerializeObject(json));
            return(req);
        }
示例#8
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQHttpRequest req     = CreateHttpRequest("GET", QQConstants.URL_GET_USER_LEVEL);
            QQSession     session = Context.Session;

            req.AddGetValue("tuin", user.Uin + "");
            req.AddGetValue("t", DateUtils.NowTimestamp() + "");
            req.AddGetValue("vfwebqq", session.Vfwebqq);
            return(req);
        }
        public override QQHttpRequest OnBuildRequest()
        {
            QQHttpRequest req     = CreateHttpRequest("GET", QQConstants.URL_SEND_INPUT_NOTIFY);
            QQSession     session = Context.Session;

            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("to_uin", user.Uin + "");
            req.AddGetValue("t", DateUtils.NowTimestamp() + "");
            req.AddGetValue("psessionid", session.SessionId);
            return(req);
        }
示例#10
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession     session = Context.Session;
            QQHttpRequest req     = CreateHttpRequest("GET", QQConstants.URL_GET_DISCUZ_LIST);

            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("psessionid", session.SessionId);
            req.AddGetValue("vfwebqq", session.Vfwebqq);
            req.AddGetValue("t", DateUtils.NowTimestamp() + "");
            return(req);
        }
示例#11
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQHttpRequest req     = CreateHttpRequest("GET", QQConstants.URL_GET_OFFPIC);
            QQSession     session = Context.Session;

            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("f_uin", msg.From.Uin + "");
            req.AddGetValue("file_path", offpic.FilePath);
            req.AddGetValue("psessionid", session.SessionId);
            req.OutputStream = picOut;
            return(req);
        }
示例#12
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession     session = Context.Session;
            QQHttpRequest req     = CreateHttpRequest("GET", QQConstants.URL_GET_STRANGER_INFO);

            req.AddGetValue("tuin", user.Uin + "");
            req.AddGetValue("verifysession", "");       // ?
            req.AddGetValue("gid", "0");
            req.AddGetValue("code", "");
            req.AddGetValue("vfwebqq", session.Vfwebqq);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");
            return(req);
        }
示例#13
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession session = Context.Session;

            QQHttpRequest req = CreateHttpRequest("GET",
                                                  QQConstants.URL_GET_ONLINE_BUDDY_LIST);

            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("psessionid", session.SessionId);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");
            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
示例#14
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession     session = Context.Session;
            QQHttpRequest req     = CreateHttpRequest("GET", QQConstants.URL_SHAKE_WINDOW);

            req.AddGetValue("to_uin", user.Uin + "");
            req.AddGetValue("psessionid", session.SessionId);
            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("t", DateUtils.NowTimestamp() + "");

            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
示例#15
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession session = Context.Session;

            QQHttpRequest req = CreateHttpRequest("GET",
                                                  QQConstants.URL_CUSTOM_FACE_SIG);

            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("psessionid", session.SessionId);
            req.AddGetValue("t", DateTime.Now.CurrentTimeMillis() / 1000 + "");

            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
示例#16
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession session = Context.Session;

            QQHttpRequest req = CreateHttpRequest("GET",
                                                  QQConstants.URL_GET_USER_SIGN);

            req.AddGetValue("tuin", buddy.Uin + "");
            req.AddGetValue("vfwebqq", session.Vfwebqq);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");

            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
示例#17
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession session = Context.Session;

            QQHttpRequest req = CreateHttpRequest("GET", QQConstants.URL_LOGOUT);

            req.AddGetValue("ids", ""); // 产生过会话才出现ID,如何获取??
            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("psessionid", session.SessionId);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");

            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
示例#18
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession     session = Context.Session;
            QQHttpRequest req     = CreateHttpRequest("GET",
                                                      QQConstants.URL_GET_USER_FACE);

            req.AddGetValue("uin", group.Code + "");
            req.AddGetValue("vfwebqq", session.Vfwebqq);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");
            req.AddGetValue("cache", "0");
            req.AddGetValue("type", "4");
            req.AddGetValue("fid", "0");
            return(req);
        }
示例#19
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession     session = Context.Session;
            QQHttpRequest req     = CreateHttpRequest("GET", QQConstants.URL_GET_USER_FACE);

            req.AddGetValue("uin", user.Uin + "");
            req.AddGetValue("vfwebqq", session.Vfwebqq);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");
            req.AddGetValue("cache", 0 + ""); // ??
            req.AddGetValue("type", 1 + "");  // ??
            req.AddGetValue("fid", 0 + "");   // ??

            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
示例#20
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession session = this.Context.Session;

            QQHttpRequest req = CreateHttpRequest("GET",
                                                  QQConstants.URL_CHANGE_STATUS);

            req.AddGetValue("newstatus", _status.Value);
            req.AddGetValue("clientid", session.ClientId + "");
            req.AddGetValue("psessionid", session.SessionId);
            req.AddGetValue("t", DateTime.Now.CurrentTimeMillis() / 1000 + "");

            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
示例#21
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession session = Context.Session;

            QQHttpRequest req = CreateHttpRequest("POST", QQConstants.URL_UPLOAD_CUSTOM_FACE);

            req.AddGetValue("time", DateUtils.NowTimestamp() / 1000 + "");
            req.AddPostValue("from", "control");
            req.AddPostValue("f", "EQQ.Model.ChatMsg.callbackSendPicGroup");
            req.AddPostValue("vfwebqq", session.Vfwebqq);
            req.AddPostValue("fileid", Context.Store.GetPicItemListSize() + "");
            req.AddPostFile("custom_face", file);

            return(req);
        }
示例#22
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession session = Context.Session;

            QQHttpRequest req = CreateHttpRequest("POST", QQConstants.URL_ACCEPET_BUDDY_ADD);

            JObject json = new JObject();

            json.Add("account", _account);
            json.Add("gid", "0");
            json.Add("mname", "");
            json.Add("vfwebqq", session.Vfwebqq);
            req.AddPostValue("r", json.ToString());
            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
示例#23
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession session = Context.Session;
            // tuin=4245757755&verifysession=&type=1&code=&vfwebqq=**&t=1361631644492
            QQHttpRequest req = CreateHttpRequest("GET",
                                                  QQConstants.URL_GET_USER_ACCOUNT);

            req.AddGetValue("tuin", buddy.Uin + "");
            req.AddGetValue("vfwebqq", session.Vfwebqq);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");
            req.AddGetValue("verifysession", ""); // 验证码??
            req.AddGetValue("type", 1 + "");
            req.AddGetValue("code", "");

            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
示例#24
0
        public override void OnHttpStatusOK(QQHttpResponse response)
        {
            Regex rex = new Regex(QQConstants.REGXP_LOGIN_SIG);
            Match mc  = rex.Match(response.GetResponseString());

            if (mc.Success)
            {
                QQSession session = Context.Session;
                session.LoginSig = mc.Groups[1].Value;

                NotifyActionEvent(QQActionEventType.EVT_OK, session.LoginSig);
            }
            else
            {
                NotifyActionEvent(QQActionEventType.EVT_ERROR, new QQException(QQErrorCode.INVALID_RESPONSE, "Login Sig Not Found!!"));
            }
        }
示例#25
0
        public override QQHttpRequest OnBuildRequest()
        {
            QQSession session = Context.Session;

            JObject json = new JObject();

            json.Add("vfwebqq", session.Vfwebqq);
            json.Add("clientid", session.ClientId);
            json.Add("psessionid", session.SessionId);

            QQHttpRequest req = CreateHttpRequest("POST", QQConstants.URL_GET_RECENT_LIST);

            req.AddPostValue("r", JsonConvert.SerializeObject(json));
            req.AddPostValue("clientid", session.ClientId + "");
            req.AddPostValue("psessionid", session.SessionId);

            return(req);
        }
示例#26
0
        public override QQHttpRequest OnBuildRequest()
        {
            IHttpService httpService = Context.GetSerivce<IHttpService>(QQServiceType.HTTP);
            QQHttpCookie ptwebqq = httpService.GetCookie("ptwebqq", QQConstants.URL_GET_USER_CATEGORIES);
            QQSession session = Context.Session;
            QQAccount account = Context.Account;

            JObject json = new JObject();
            json.Add("vfwebqq", session.Vfwebqq);
            json.Add("hash", QQEncryptor.GetHash(account.Uin + "", ptwebqq.Value));

            QQHttpRequest req = CreateHttpRequest("POST",
                    QQConstants.URL_GET_GROUP_NAME_LIST);
            req.AddPostValue("r", JsonConvert.SerializeObject(json));

            req.AddHeader("Referer", QQConstants.REFFER);

            return req;
        }
示例#27
0
        public override void OnHttpStatusOK(QQHttpResponse response)
        {
            QQSession session = Context.Session;

            JObject json = JObject.Parse(response.GetResponseString());

            if (json["retcode"].ToString() == "0")
            {
                JObject obj = json["result"].ToObject <JObject>();
                session.CfaceKey = obj["gface_key"].ToString();
                session.CfaceSig = obj["gface_sig"].ToString();
                NotifyActionEvent(QQActionEventType.EVT_OK, session);
            }
            else
            {
                NotifyActionEvent(QQActionEventType.EVT_ERROR,
                                  new QQException(QQErrorCode.UNEXPECTED_RESPONSE, response.GetResponseString()));
            }
        }
示例#28
0
        public override QQHttpRequest OnBuildRequest()
        {
            /*
             *  tuin	236557647
             *  verifysession
             *  code
             *  vfwebqq	efa425e6afa21b3ca3ab8db97b65afa0535feb4af47a38cadcf1a4b1650169b4b4eee9955f843990
             *  t	1346856270187
             */
            QQSession     session = Context.Session;
            QQHttpRequest req     = CreateHttpRequest("GET", QQConstants.URL_GET_FRIEND_INFO);

            req.AddGetValue("tuin", buddy.Uin + "");
            req.AddGetValue("verifysession", "");       //难道有验证码???
            req.AddGetValue("code", "");
            req.AddGetValue("vfwebqq", session.Vfwebqq);
            req.AddGetValue("t", DateUtils.NowTimestamp() / 1000 + "");

            req.AddHeader("Referer", QQConstants.REFFER);
            return(req);
        }
        public override QQHttpRequest OnBuildRequest()
        {
            IHttpService httpService = Context.GetSerivce <IHttpService>(QQServiceType.HTTP);
            QQSession    session     = Context.Session;

            QQHttpRequest req = CreateHttpRequest("POST", QQConstants.URL_UPLOAD_OFFLINE_PICTURE);

            req.AddGetValue("time", DateUtils.NowTimestamp() / 1000 + "");
            req.AddPostFile("file", this.file);
            req.AddPostValue("callback", "parent.EQQ.Model.ChatMsg.callbackSendPic");
            req.AddPostValue("locallangid", "2052");
            req.AddPostValue("clientversion", "1409");
            req.AddPostValue("uin", Context.Account.Uin + ""); // 自己的账号
            req.AddPostValue("skey", httpService.GetCookie("skey", QQConstants.URL_UPLOAD_OFFLINE_PICTURE).Value);
            req.AddPostValue("appid", "1002101");
            req.AddPostValue("peeruin", user.Uin + ""); // 图片对方UIN
            req.AddPostValue("fileid", "1");
            req.AddPostValue("vfwebqq", session.Vfwebqq);
            req.AddPostValue("senderviplevel", Context.Account.Level.Level + "");
            req.AddPostValue("reciverviplevel", user.Level.Level + "");
            return(req);
        }
示例#30
0
        /* (non-Javadoc)
         * @see iqq.im.action.AbstractHttpAction#OnBuildRequest()
         */
        /** {@inheritDoc} */

        public override QQHttpRequest OnBuildRequest()
        {
            QQHttpRequest req = CreateHttpRequest("GET", QQConstants.URL_GET_GROUP_PIC);

            //		fid	3648788200
            //		gid	2890126166
            //		pic	{F2B04C26-9087-437D-4FD9-6A0ED84155FD}.jpg
            //		rip	123.138.154.167
            //		rport	8000
            //		t	1365343106
            //		type	0
            //		uin	3559750777
            //		vfwebqq	70b5f77bfb1db1367a2ec483ece317ea9ef119b9b59e542b2e8586f7ede6030ff56f7ba8798ba34b
            //		"cface",
            //        {
            //            "name": "{F2B04C26-9087-437D-4FD9-6A0ED84155FD}.jpg",
            //            "file_id": 3648788200,
            //            "key": "pcm4N6IKmQ852Pus",
            //            "server": "123.138.154.167:8000"
            //        }

            QQSession session = Context.Session;

            req.AddGetValue("fid", cface.FileId + "");
            req.AddGetValue("gid", (msg.Group != null ?
                                    msg.Group.Code : msg.Discuz.Did) + "");
            req.AddGetValue("pic", cface.FileName);
            string[] parts = cface.Server.Split(':');
            req.AddGetValue("rip", parts[0]);
            req.AddGetValue("rport", parts[1]);
            req.AddGetValue("t", DateUtils.NowTimestamp() + "");
            req.AddGetValue("type", msg.Group != null ? "0" : "1");
            req.AddGetValue("uin", msg.From.Uin + "");
            req.AddGetValue("vfwebqq", session.Vfwebqq);

            req.OutputStream = picOut;
            return(req);
        }