public void insertResponse(Object data)
        {
            if (this.chatForm.sessionStatus == SessionStatus.expire)
            {
                return;
            }
            RawDataFactory rawDataFactory = (RawDataFactory)data;

            //add timestamp,token
            DateTime timeStamp = new DateTime(1970, 1, 1);                             //得到1970年的时间戳
            long     a         = (DateTime.UtcNow.Ticks - timeStamp.Ticks) / 10000000; //注意这里有时区问题,用now就要减掉8个小时

            rawDataFactory.Timestamp = a.ToString();
            String userSid = this.chatForm.user.userSid;
            String token   = rawDataFactory.Timestamp + this.chatForm.conStr + rawDataFactory.Uid + userSid;

            rawDataFactory.Token = LoginForm.GetMd5(32, token);

            IRawDataFactory rawDataFactoryMapper = new RawDataFactoryMapper();
            Result          result = rawDataFactoryMapper.insertData(rawDataFactory);

            if (result.Code != 200 && this.chatForm.sessionStatus != SessionStatus.expire)
            {
                this.chatForm.callback_showExpireBox(result.Message);
            }
        }
Example #2
0
 public Task <RawData> ExtractAsync(string source, IFilter filter)
 {
     return(GetResponseAsync(_restClient, source, filter)
            .ContinueWith((getResponseAsync) =>
     {
         var rawContent = getResponseAsync.Result.GetContent();
         return RawDataFactory.CreateRawData(GetUrl(source), filter, rawContent);
     }));
 }
Example #3
0
        public Result insertData(RawDataFactory rawDataFactory)
        {
            Result     result = new Result();
            HttpClient http   = new HttpClient(new HttpClientHandler());

            http.DefaultRequestHeaders.ExpectContinue = false;
            try
            {
                String url = Uri.server_address + "index.php?m=Home&c=Rawdata&a=insertData";

                String jsondata = JsonHelper.SerializeObject(rawDataFactory);

                var content = new StringContent(jsondata, Encoding.UTF8, "application/json");

                //await异步等待回应
                var response = http.PostAsync(url, content).Result;
                //确保HTTP成功状态值
                response.EnsureSuccessStatusCode();
                //await异步读取最后的JSON
                String resdata = response.Content.ReadAsStringAsync().Result;


                JObject o    = JObject.Parse(resdata);
                int     code = (int)o.SelectToken("code");
                String  msg  = (String)o.SelectToken("message");

                result.Code    = code;
                result.Message = msg;
            }
            catch (Exception e)
            {
                log.Error(e.Message, e);
                result.Code    = 500;
                result.Message = "网络异常或请求超时";
            }
            finally
            {
                http.Dispose();
            }

            return(result);
        }
        void IRequestHandler.GetResponseContent(string content)
        {
            //Console.WriteLine(content);

            RawDataFactory rawDataFactory = new RawDataFactory();

            rawDataFactory.Content = content;


            rawDataFactory.HttpType = 1;

            rawDataFactory.Sid = sessionId;


            rawDataFactory.WxUin = wxUin;
            rawDataFactory.Uid   = this.chatForm.user.Id;


            new Thread(new ParameterizedThreadStart(insertResponse)).Start(rawDataFactory);
        }
        void IRequestHandler.OnResourceResponse(IWebBrowser browser, string url, int status, string statusText, string mimeType, WebHeaderCollection headers)
        {
            if (url.Contains("cgi-bin/mmwebwx-bin/webwxsendmsg"))
            {
                if (status == 200)
                {
                    RawDataFactory rawDataFactory = new RawDataFactory();
                    rawDataFactory.Content = requestBody;
                    //rawDataFactory.Finished = 0;
                    rawDataFactory.HttpType = 2;

                    rawDataFactory.Sid = sessionId;

                    rawDataFactory.WxUin = wxUin;
                    rawDataFactory.Uid   = this.chatForm.user.Id;


                    new Thread(new ParameterizedThreadStart(insertResponse)).Start(rawDataFactory);
                }
            }
        }