Exemple #1
0
        private SocketWorkerJob(int index, Uri uri, WorkerThreadResult workerThreadResult)
        {
            _index     = index;
            _uri       = uri;
            _stopwatch = new Stopwatch();
            _stopwatch.Start();
            _localStopwatch     = new Stopwatch();
            _workerThreadResult = workerThreadResult;

            IPAddress ip;

            if (_uri.HostNameType == UriHostNameType.Dns)
            {
                var host = Dns.GetHostEntry(_uri.Host);
                ip = host.AddressList.First(i => i.AddressFamily == AddressFamily.InterNetwork);
            }
            else
            {
                ip = IPAddress.Parse(_uri.Host);
            }

            var endPoint = new IPEndPoint(ip, _uri.Port);

            _httpWorker = new HttpWorker(new HttpWorkerClient(endPoint, uri), uri);
        }
 /// <summary>
 /// 一次性获取多个章节内容
 /// </summary>
 /// <param name="nodeIdList"></param>
 public static bool getNodeDetail(List <string> nodeIdList, bool downloadImage = false)
 {
     try
     {
         string             nodeDetails       = HttpWorker.HttpGet(Global.NodeDetailApi, "nodeIds=" + string.Join(",", nodeIdList));
         NodeDetailResponse nodeDtailResponse = TranslationWorker.ConvertStringToEntity <NodeDetailResponse>(nodeDetails);
         List <Node>        nodes             = nodeDtailResponse.ConvertToNodes();
         if (downloadImage)
         {
             foreach (Node node in nodes)//下载图片到本地,并生成离线内容
             {
                 List <string> urls = HtmlCleaner.GetImageUrl(node.content);
                 foreach (string url in urls)
                 {
                     HttpWorker.SaveImg(url, node.lawId);
                 }
                 node.offlineContent = HtmlCleaner.ChangeImageUrlToLocalPath(node.content, node.lawId);
             }
         }
         db.refreshNode(nodes, detailOnly: true);
         return(true);
     }
     catch (Exception)
     {
         MessageBox.Show("操作超时");
         return(false);
     }
 }
 public SplashViewModel(HttpWorker httpWorker, IMemberHandler memberHandler, IPlatformService platformService, SettingService settingService)
 {
     _httpFactory     = httpWorker;
     _settingServicce = settingService;
     _memberHandler   = memberHandler;
     _platformService = platformService;
 }
        /// <summary>
        /// 获取登陆用户信息
        /// </summary>
        public static void getUserInfo()
        {
            string           userInfoStr = HttpWorker.HttpGet(Global.WorkerInfoUrl, "usrid=" + Global.user.Id);
            UserInfoResponse userInfo    = TranslationWorker.ConvertStringToEntity <UserInfoResponse>(userInfoStr);

            userInfo.setUserInfo();
        }
Exemple #5
0
        public async Task TestPostText()
        {
            var text = "Hello world, thanks postman-echo !";

            using var fileStore = _fileStoreFactory.GetFileStoreFromName("test");

            string token = await fileStore.CreateFileToken("sample.txt");

            using (StreamWriter writer = new StreamWriter(await fileStore.OpenWrite(token)))
            {
                writer.Write(text);
            }
            HttpWorker worker   = Host.Services.GetService <HttpWorker>();
            var        response = await worker.DoJsonWork <HttpWorkerInput, HttpWorkerOutput>(new HttpWorkerInput
            {
                Method                = "POST",
                Uri                   = new Uri("https://postman-echo.com/post"),
                ContentFileToken      = token,
                OutputFileStoreName   = "test",
                OutputContentFileName = "test.json"
            });

            Assert.Equal(HttpStatusCode.OK, response.StatusCode);
            Assert.True(response.Length > 0);
            Assert.NotNull(response.ContentFileToken);
        }
        /// <summary>
        /// 获取评论用户信息
        /// </summary>
        /// <param name="userIdList">评论用户id列表</param>
        /// <returns></returns>
        public static List <User> getUserInfoList(List <string> userIdList)
        {
            string           userInfoStr = HttpWorker.HttpGet(Global.WorkerInfoUrl, "usrid=" + string.Join(",", userIdList));
            UserInfoResponse userInfo    = TranslationWorker.ConvertStringToEntity <UserInfoResponse>(userInfoStr);

            return(userInfo.ConvertToUsers());
        }
Exemple #7
0
        private static void Main(string[] args)
        {
            List <Task> list = new List <Task>();

            if (string.Equals(args[0].ToLowerInvariant(), "filesystem"))
            {
                for (uint i = 1; i < args.Length; i++)
                {
                    var worker = new FileSystemWorker();
                    list.Add(worker.ProcessDataAsync(args[i]));
                }
            }
            else if (string.Equals(args[0].ToLowerInvariant(), "http"))
            {
                for (uint i = 1; i < args.Length; i++)
                {
                    var worker = new HttpWorker();
                    list.Add(worker.ProcessDataAsync(args[i]));
                }
            }
            else
            {
                Console.WriteLine("Incorrect \"input_mode\". Please check: filesystem or http.");
                Console.ReadKey();
                return;
            }

            HandleResult(list);
            Collector.Clear();
            Console.WriteLine("Work is done. Check output file: output.txt");
            Console.WriteLine("Press any key for close");
            Console.ReadKey();
        }
Exemple #8
0
        public void callWordList()
        {
            HttpWorker httpWorker = new HttpWorker(HttpWorker.wordList, httpResponse);
            JSONObject form       = new JSONObject();

            httpWorker.setData(form);
            httpWorker.httpWorker();
        }
Exemple #9
0
        internal Task <string> Login(User user)
        {
            var req = new HttpRequest("login");

            req.AddParameter("username", user.UserName);
            req.AddParameter("password", user.Password);
            return(HttpWorker.RunWorker <string>(req));
        }
Exemple #10
0
        internal Task <List <ChatObject> > GetHistory(string receiver)
        {
            var req = new HttpRequest("GetHistory");

            req.AddParameter("username", AppService.CurrentUser);
            req.AddParameter("receivername", receiver);
            return(HttpWorker.RunWorker <List <ChatObject> >(req));
        }
Exemple #11
0
 public AppState(IMemberHandler memberHandler, HttpWorker httpWorker,
                 ILocalStorageService localStorageService,
                 ISessionStorageService sessionStorageService)
 {
     _memberHandler = memberHandler;
     _httpWorker    = httpWorker;
     _localData     = localStorageService;
     _sessionData   = sessionStorageService;
 }
Exemple #12
0
        public void ReadResponseSplit()
        {
            var client     = (IHttpWorkerClient) new FakeHttpWorkerClient("HTTP/1.1 200 OK\r\nDate: Wed, 06 Jul 2016 18:26:27 GMT\r\nContent-Length: 13\r\nContent-Type: text/plain\r\nServer: Kestrel\r\n\r\n", "Hello, World!");
            var httpWorker = new HttpWorker(client, new Uri("http://netling.test", UriKind.Absolute), null);  //TODO: Headers

            var(length, statusCode) = httpWorker.Send();
            Assert.AreEqual(200, statusCode);
            Assert.AreEqual(132, length);
        }
 private SocketWorkerJob(int index, Uri uri, WorkerThreadResult workerThreadResult)
 {
     _index              = index;
     _uri                = uri;
     _stopwatch          = Stopwatch.StartNew();
     _localStopwatch     = new Stopwatch();
     _workerThreadResult = workerThreadResult;
     _httpWorker         = new HttpWorker(new HttpWorkerClient(uri), uri);
 }
Exemple #14
0
        internal Task <string> Register(User user)
        {
            var req = new HttpRequest("register");

            req.AddParameter("username", user.UserName);
            req.AddParameter("firstname", user.FirstName);
            req.AddParameter("lastname", user.LastName);
            req.AddParameter("password", user.Password);
            return(HttpWorker.RunWorker <string>(req));
        }
Exemple #15
0
        private void chooseFinishBtn_Click(object sender, EventArgs e)
        {
            HttpWorker httpWorker = new HttpWorker(HttpWorker.orderCheckout, httpResponse);
            JSONObject form       = new JSONObject();

            form.setString("orderID", configManager.getOrderID());
            httpWorker.setData(form);
            httpWorker.httpWorker();
            WaitDialog.show();
        }
Exemple #16
0
 private SocketWorkerJob(int index, Uri uri, Dictionary <string, string> headers, WorkerThreadResult workerThreadResult)
 {
     _index              = index;
     _uri                = uri;
     _headers            = headers;
     _stopwatch          = Stopwatch.StartNew();
     _localStopwatch     = new Stopwatch();
     _workerThreadResult = workerThreadResult;
     _httpWorker         = new HttpWorker(new HttpWorkerClient(uri), uri, headers);
 }
Exemple #17
0
        public void ReadResponse()
        {
            var client     = new FakeHttpWorkerClient("HTTP/1.1 200 OK\r\nDate: Wed, 06 Jul 2016 18:26:27 GMT\r\nContent-Length: 13\r\nContent-Type: text/plain\r\nServer: Kestrel\r\n\r\nHello, World!");
            var httpWorker = new HttpWorker(client, new Uri("http://netling.test", UriKind.Absolute));

            var length = httpWorker.Read(out var statusCode);

            Assert.AreEqual(200, statusCode);
            Assert.AreEqual(132, length);
        }
Exemple #18
0
        private void btnCheck_Click(object sender, EventArgs e)
        {
            if (outputText.Text.Length == 0)
            {
                FolderBrowserDialog path = new FolderBrowserDialog();
                path.ShowDialog();
                outputText.Text = path.SelectedPath;
            }
            if (outputText.Text.Length == 0)
            {
                MessageBox.Show("尚未選擇輸出路徑!");
                return;
            }
            if (textTestTime.Text.Length == 0 || textUserName.Text.Length == 0 || textUserYearOld.Text.Length == 0 || textWordNum.Text.Length == 0)
            {
                MessageBox.Show("欄位都為必填!");
                return;
            }
            ArrayList list = bluetooth_list.getResult();

            if (list.Count == 0)
            {
                MessageBox.Show("尚未選擇Device!");
                return;
            }
            ChromeUtils.closeChrome();
            Boolean isclient = checkBoxClient.Checked;

            if (isclient)
            {
                BluetoothDeviceManager manager = (BluetoothDeviceManager)list[0];
                string        order_id         = DateTime.Now.ToString("yyyyMMddHHmmss");
                ConfigManager config_manager   = new ConfigManager(order_id, outputText.Text, int.Parse(textTestTime.Text), manager, true, isclient, textUserName.Text, textUserYearOld.Text);
                MessageBox.Show("準備好了?確定後開始測試");
                ArrayList formList = new ArrayList();
                formList.Add(this);
                formList.Add(bluetooth_list);
                new Memory(config_manager, formList);
            }
            else
            {
                BluetoothDeviceManager manager    = (BluetoothDeviceManager)list[0];
                HttpWorker             httpWorker = new HttpWorker(HttpWorker.orderCreate, httpResponse);
                JSONObject             form       = new JSONObject();
                form.setString("deviceAddress", manager.getDeviceAddress());
                form.setString("userName", textUserName.Text);
                form.setString("userYearOld", textUserYearOld.Text);
                form.setString("wordNum", textWordNum.Text);
                form.setString("testTime", textTestTime.Text);
                httpWorker.setData(form);
                httpWorker.httpWorker();
                WaitDialog.show();
            }
        }
Exemple #19
0
        private async void WatchMatch(VideoPlayer player, Reference reference)
        {
            var uri = $"http://192.168.1.37:6878/ace/manifest.m3u8?format=json&id={reference.ContentId}";

            var url = await HttpWorker.GetAceStreamUrl <Response>(uri);

            player.Source = new UriVideoSource
            {
                Uri = url?.playback_url
            };
        }
Exemple #20
0
        private void getOrderView()
        {
            HttpWorker httpWorker = new HttpWorker(HttpWorker.orderView, httpResponse);
            JSONObject form       = new JSONObject();

            form.setString("orderID", orderID);
            form.setString("showTranslate", "true");
            httpWorker.setData(form);
            httpWorker.httpWorker();
            WaitDialog.show();
        }
        /// <summary>
        /// 获取设置列表
        /// </summary>
        public static void getSetResponse()
        {
            string sets = HttpWorker.HttpGet(Global.SetListApi, "");

            if (sets == "error")
            {
                return;
            }
            SetListResponse setListResponse = TranslationWorker.ConvertStringToEntity <SetListResponse>(sets);

            db.refreshCode(setListResponse.ConvertToCodes());
        }
Exemple #22
0
        public async Task TestErrorManagement()
        {
            HttpWorker worker   = Host.Services.GetService <HttpWorker>();
            var        response = await worker.DoJsonWork <HttpWorkerInput, HttpWorkerOutput>(new HttpWorkerInput
            {
                Method      = "GET",
                Uri         = new Uri("https://postman-echo.com/status/404"),
                FailIfError = false
            });

            Assert.Equal(HttpStatusCode.NotFound, response.StatusCode);
            Assert.Null(response.ContentFileToken);
        }
Exemple #23
0
        private bool login()
        {
            var tempList = BaseAdapter.getAll <Tb_code>();

            if (tempList.Count() == 0)
            {
                return(false);
            }
            HttpWorker.getUser(txt_username.Text.Trim());//模拟用户获取
            //HttpWorker.login(txt_username.Text.Trim(), txt_password.Text.Trim());
            //HttpWorker.getUserList();
            return(true);
        }
        /// <summary>
        /// 获取修订列表内容
        /// </summary>
        /// <param name="bookId"></param>
        /// <returns></returns>
        public static string getHistory(string bookId)
        {
            string result        = string.Empty;
            string historyResult = HttpWorker.HttpGet(Global.HistoryApi, "bookId=" + bookId);

            if (historyResult == "error")
            {
                return(result);
            }
            HistoryResponse history = TranslationWorker.ConvertStringToEntity <HistoryResponse>(historyResult);

            result = string.Join(Environment.NewLine, history.data.list.Select(l => l.version));
            return(result);
        }
        /// <summary>
        /// 获取全部法规列表
        /// </summary>
        public static int getLawResponse()
        {
            string laws = HttpWorker.HttpGet(Global.AllBooksApi, "beginTime=" + UTC.ConvertDateTimeInt(new DateTime(2010, 01, 01)).ToString() + "&pageSize=-1");

            if (laws == "error")
            {
                return(-1);
            }
            AllBooksResponse allBookResponse = TranslationWorker.ConvertStringToEntity <AllBooksResponse>(laws);
            int autoUpdateCount = 0;

            db.refreshLaw(allBookResponse.ConvertToLaws(), out autoUpdateCount);
            return(autoUpdateCount);
        }
Exemple #26
0
        private void finishBtn_Click(object sender, EventArgs e)
        {
            DialogResult myResult = MessageBox.Show("確定答題完成", "正要交卷,確定已經上傳答案了嗎??", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (myResult == DialogResult.Yes)
            {
                HttpWorker httpWorker = new HttpWorker(HttpWorker.orderFinish, httpResponse);
                JSONObject form       = new JSONObject();
                form.setString("orderID", configManager.getOrderID());
                httpWorker.setData(form);
                httpWorker.httpWorker();
                WaitDialog.show();
            }
        }
        /// <summary>
        /// 提交意见征询
        /// </summary>
        /// <param name="consult"></param>
        /// <returns></returns>
        public static string postCommit(ConsultRequest consult)
        {
            string result = string.Empty;

            try
            {
                result = HttpWorker.PostStr(Global.ConsultCommitApi, consult.ToJson());
            }
            catch (Exception ex)
            {
                MessageBox.Show("提交征询意见失败,请重试。原因:" + ex.Message);
            }
            return(result);
        }
        /// <summary>
        /// 提交评论
        /// </summary>
        /// <param name="opinion"></param>
        /// <returns></returns>
        public static string postOpinion(OpinionCommitRequest opinion)
        {
            string result = string.Empty;

            try
            {
                //result= HttpWorker.PostJson(Global.OpinionCommitApi, opinion.ToJson());
                result = HttpWorker.PostStr(Global.OpinionCommitApi, opinion.ToJson());
            }
            catch (Exception ex)
            {
                MessageBox.Show("提交评论失败,请重试。原因:" + ex.Message);
            }
            return(result);
        }
        /// <summary>
        /// 获取某一法规的整体目录
        /// </summary>
        /// <param name="bookId"></param>
        //public static Tuple<List<Node>, List<Node>> getBookContent(string bookId)
        //{
        //    string bookContents = HttpWorker.HttpGet(Global.BookContentApi, "bookId=" + bookId);
        //    BookContentResponse bookContentResponse = TranslationWorker.ConvertStringToEntity<BookContentResponse>(bookContents);
        //    List<Node> nodes = bookContentResponse.ConvertToNodes();
        //    db.refreshNode(nodes);
        //    List<Node> details = getNodeDetail(nodes.Select(n => n.Id).ToList());
        //    return new Tuple<List<Node>, List<Node>>(nodes, details);
        //}

        /// <summary>
        /// 获取某一法规的整体目录
        /// </summary>
        /// <param name="bookId"></param>
        public static List <Node> getBookContent(string bookId)
        {
            try
            {
                string bookContents = HttpWorker.HttpGet(Global.BookContentApi, "bookId=" + bookId);
                BookContentResponse bookContentResponse = TranslationWorker.ConvertStringToEntity <BookContentResponse>(bookContents);
                List <Node>         nodes = bookContentResponse.ConvertToNodes();
                db.refreshNode(nodes);
                return(nodes);
            }
            catch (Exception)
            {
                MessageBox.Show("操作超时");
                return(new List <Node>());
            }
        }
        private static void RespondWithJwks(IHttpContext context)
        {
            List <X509Certificate2> signCerts = new List <X509Certificate2>()
            {
                new X509Certificate2("server.pfx", "", X509KeyStorageFlags.Exportable),
                new X509Certificate2("server2.pfx", "", X509KeyStorageFlags.Exportable)
            };
            List <X509Certificate2> encCerts = new List <X509Certificate2>()
            {
                new X509Certificate2("server.pfx", "", X509KeyStorageFlags.Exportable),
                new X509Certificate2("server2.pfx", "", X509KeyStorageFlags.Exportable)
            };

            Dictionary <string, object> keysDict = KeyManager.GetKeysJwkDict(signCerts, encCerts);
            string rstring = Serializer.SerializeToJson(keysDict);

            HttpWorker.WriteTextToResponse(context, rstring);
        }
Exemple #31
0
        private static void DoWork(Uri uri, TimeSpan duration, int? count, int pipelining, ConcurrentQueue<WorkerThreadResult> results, Stopwatch sw, CancellationToken cancellationToken, ManualResetEventSlim resetEvent, int workerIndex)
        {
            var result = new WorkerThreadResult();
            var sw2 = new Stopwatch();
            var sw3 = new Stopwatch();
            var worker = new HttpWorker(uri);
            var current = 0;

            // To save memory we only track response times from the first 20 workers
            var trackResponseTime = workerIndex < 20;

            // Priming connection ...
            if (!count.HasValue)
            {
                try
                {
                    int tmpStatusCode;

                    if (pipelining > 1)
                    {
                        worker.WritePipelined(pipelining);
                        worker.Flush();
                        for (var j = 0; j < pipelining; j++)
                        {
                            worker.ReadPipelined(out tmpStatusCode);
                        }
                    }
                    else
                    {
                        worker.Write();
                        worker.Flush();
                        worker.Read(out tmpStatusCode);
                    }

                }
                catch (Exception) { }
            }

            if (pipelining == 1)
            {
                while (!cancellationToken.IsCancellationRequested && duration.TotalMilliseconds > sw.Elapsed.TotalMilliseconds && (!count.HasValue || current < count.Value))
                {
                    current++;
                    try
                    {
                        sw2.Restart();
                        worker.Write();
                        worker.Flush();
                        int statusCode;
                        var length = worker.Read(out statusCode);
                        result.Add((int)(sw.ElapsedTicks / Stopwatch.Frequency), length, (float) sw2.ElapsedTicks / Stopwatch.Frequency * 1000, statusCode, trackResponseTime);
                    }
                    catch (Exception ex)
                    {
                        result.AddError((int)(sw.ElapsedTicks / Stopwatch.Frequency), (float) sw2.ElapsedTicks / Stopwatch.Frequency * 1000, ex);
                    }
                }
            }
            else
            {
                try
                {
                    sw2.Restart();
                    worker.WritePipelined(pipelining);
                    worker.Flush();
                }
                catch (Exception ex)
                {
                    result.AddError((int)(sw.ElapsedTicks / Stopwatch.Frequency), (float)sw2.ElapsedTicks / Stopwatch.Frequency * 1000, ex);
                }

                while (!cancellationToken.IsCancellationRequested && duration.TotalMilliseconds > sw.Elapsed.TotalMilliseconds)
                {
                    try
                    {
                        for (var j = 0; j < pipelining; j++)
                        {
                            int statusCode;
                            var length = worker.ReadPipelined(out statusCode);
                            result.Add((int)Math.Floor((float)sw.ElapsedTicks / Stopwatch.Frequency), length, (float)sw2.ElapsedTicks / Stopwatch.Frequency * 1000, statusCode, trackResponseTime);

                            if (j == 0 && !cancellationToken.IsCancellationRequested && duration.TotalMilliseconds > sw.Elapsed.TotalMilliseconds)
                            {
                                sw3.Restart();
                                worker.WritePipelined(pipelining);
                                worker.Flush();
                            }
                        }

                        var tmp = sw2;
                        sw2 = sw3;
                        sw3 = tmp;
                    }
                    catch (Exception ex)
                    {
                        result.AddError((int)(sw.ElapsedTicks / Stopwatch.Frequency), (float)sw2.ElapsedTicks / Stopwatch.Frequency * 1000, ex);
                    }
                }
            }

            results.Enqueue(result);
            resetEvent.Set();
        }