public async Task ProcessRequest_MaxParallelism_RequestsAreThrottled() { int maxParallelism = 3; int count = 0; Func <HttpRequestMessage, CancellationToken, Task <HttpResponseMessage> > process = async(req, ct) => { if (Interlocked.Increment(ref count) > maxParallelism) { throw new Exception("Kaboom!"); } await Task.Delay(100); Interlocked.Decrement(ref count); return(new HttpResponseMessage(HttpStatusCode.OK)); }; var config = new HttpConfiguration { MaxConcurrentRequests = maxParallelism }; var manager = new HttpRequestManager(config, _traceWriter); // expect all requests to succeed var tasks = new List <Task <HttpResponseMessage> >(); for (int i = 0; i < 20; i++) { var request = new HttpRequestMessage(); tasks.Add(manager.ProcessRequestAsync(request, process, CancellationToken.None)); } await Task.WhenAll(tasks); Assert.True(tasks.All(p => p.Result.StatusCode == HttpStatusCode.OK)); }
private void _onBtnSureHandler(GameObject go) { if (input_identify.text == "") { Console.WriteLine("请入验证码"); MessageHint.Show("请入验证码"); return; } //input_phone.text == "" || input_phone.text.Length < 11 if (GameModel.IsTelephone(input_phone.text) == false) { Console.WriteLine("请输入正确的手机号"); MessageHint.Show("手机号错误,请重新输入"); input_phone.text = ""; return; } if (input_scret.text == "") { Console.WriteLine("请输入密码"); MessageHint.Show("请输入密码"); return; } var scretModel = new PlayerRegistVo(); scretModel.code = input_identify.text; scretModel.password = input_scret.text; scretModel.phone = input_phone.text; //var tpm = new JsonData (); //tpm["code"]=scretModel.code ; //tpm["password"]=scretModel.password; //tpm ["phone"] = scretModel.phone; //var newData = new JsonData (); //newData ["jsonString"] = tpm; var backdata = ""; var tmpG = Coding <PlayerRegistVo> .encode(scretModel); Console.WriteLine("jsonString:" + tmpG); Console.WriteLine("修改密码成功sssssssss"); HttpRequestManager.GetInstance().GetModifyData(tmpG, _HandlerSuccess); Console.WriteLine(backdata); // var backdatavo = Coding<PlayerRegistBackVo>.decode (backdata); // // if(backdatavo.status==0)//chenggong // { // MessageHint.Show (backdatavo.msg); // } // else // { // MessageHint.Show (backdatavo.msg); // } }
private static void GetUpdates(Action openWindow, string getUpdatesUrl) { if (string.IsNullOrEmpty(getUpdatesUrl)) { return; } BackgroundTaskRunner.StartBackgroundTask(HttpRequestManager.SendRequest(getUpdatesUrl, (www, textResult) => { try { var update = UpdateData.CreateFromJSON(textResult); if (update != null) { ProductPreferenceBase.CreateDefaultLastUpdateText().SetEditorPersistedValue(update.Text); if (!string.IsNullOrWhiteSpace(update.Text)) { openWindow(); } } } catch { //don't show error } })); }
public void DownloadMarketCapFiles() { string currentFile = string.Empty; try { String[] categories = File.ReadAllLines(MCapFile); if (!Directory.Exists(MCapCacheDir)) { Directory.CreateDirectory(MCapCacheDir); } foreach (var category in categories) { if (File.Exists(MCapCacheDir + category)) { continue; } var request = new HttpRequestManager() { Uri = $"{MCStocks}marketinfo/marketcap/bse/" + category }; currentFile = request.Uri; File.WriteAllText(MCapCacheDir + category, request.GetData()); Console.WriteLine($"Downloaded file: {currentFile}"); } } catch (Exception ex) { Console.WriteLine(ex.ToString() + $"\n{currentFile}"); } }
private void _OnShowBottom() { _btnserver.SetActiveEx(false); Audio.AudioManager.Instance.StartMusic(); EventTriggerListener.Get(_btnLogin.gameObject).onClick += _OnLoginHandler; EventTriggerListener.Get(_btnWeChatLogin.gameObject).onClick += _OnWeChatLoginHandler; EventTriggerListener.Get(_btnRegist.gameObject).onClick += _OnRegistHandler; EventTriggerListener.Get(_btnModify.gameObject).onClick += _OnModifyHandler; EventTriggerListener.Get(_btnserver.gameObject).onClick += _OnShowServerHandler; EventTriggerListener.Get(_btnfankui.gameObject).onClick += _OnfankuiHandler; EventTriggerListener.Get(btn_showPhone.gameObject).onClick += _OnShowPhoneBaordHandler; EventTriggerListener.Get(btn_closePhoneBoard.gameObject).onClick += _OnClosePhoneBoardHandler; _currentSever = System.Convert.ToString(_localConfig.LoadValue("curServer", "")); _loginUsername.text = System.Convert.ToString(_localConfig.LoadValue(savedPhone, "")); //EventTriggerListener.Get (btn_login.gameObject).onClick+=_OnLoginHandler; //var squence = DOTween.Sequence (); //squence.Append (img_tipword.transform.DOLocalMoveY (-240, 1f)); //squence.Append (img_tipword.transform.DOLocalMoveY (-200,1f)); //squence.SetLoops(int.MaxValue); NetWorkScript.getInstance(); if (_currentSever == "") { //SetServerName ("请选择服务器",false); } _HidePhoneBoard(); HttpRequestManager.GetInstance().GetCheckVersionData(); }
private void _OnSureHandler(GameObject go) { var data = new JsonData(); if (input_name.text == "") { MessageHint.Show("请输入姓名"); return; } if (headpath == "") { MessageHint.Show("请选择人物头像"); return; } data["gender"] = this.sexname; data["playerImg"] = this.headpath; data["nick"] = input_name.text; if (_controller.windowType == 0) { HttpRequestManager.GetInstance().GetPlayerInfor(data.ToJson(), _CreateRoleSuccess); } else { var tmpInfor = GameModel.GetInstance.tmpModifyPlayerInfor; tmpInfor.nickName = input_name.text; tmpInfor.sex = int.Parse(this.sexname); tmpInfor.headImg = this.headpath; NetWorkScript.getInstance().ModifyPlayerInfor(input_name.text, tmpInfor.sex, headpath, GameModel.GetInstance.myHandInfor.uuid); } }
// public void Setup(Action <Exception> cb) { // Cleanup any existing internal modules if (MessageStream != null) { MessageStream.Dispose(); } // Instantiate Singletons UnityApplicationState.Instantiate(); HttpRequestManager.Instantiate(); // Create a shared cookie container Cookies = new CookieContainer(); // Initialize mage internal modules EventManager = new EventManager(); CommandCenter = new Command.CommandCenter(); MessageStream = new MessageStream(); Session = new Session(); Archivist = new Archivist(); // Set endpoints CommandCenter.SetEndpoint(baseUrl, appName, headers); MessageStream.SetEndpoint(baseUrl, headers); cb(null); }
static void Main(string[] args) { string jsonString = @"{""Id"":3,""Message"":""Hello Roger!""}"; TestObjectDto t = JsonConvert.DeserializeObject<TestObjectDto>(jsonString); HttpRequestManager manager = new HttpRequestManager("http://cg.webapi/"); string response = manager.Get("api/TestApi/GetMessageById/1"); }
/// <summary> /// 设置玩家信息 /// </summary> /// <param name="go"></param> private void SaveInforHandler(GameObject go) { if (setName.text == "") { MessageHint.Show("姓名不能为空"); return; } if (nian.options[nian.value].text == "") { MessageHint.Show("年份不能为空"); return; } if (yue.options[yue.value].text == "") { MessageHint.Show("月份不能为空"); return; } if (ri.options[ri.value].text == "") { MessageHint.Show("日期不能为空"); return; } var dataStr = string.Format("{0}.{1}.{2}", nian.options[nian.value].text, yue.options[yue.value].text, ri.options[ri.value].text); int tmpsex = 1; if (isSexMan == false) { tmpsex = 0; } var tarBirthday = string.Format("{0}.{1}.{2}", nianInt, yueInt, riInt); var tarName = setName.text; var myInfor = GameModel.GetInstance.myHandInfor; if (myInfor.nickName == tarName && tarBirthday == myInfor.birthday && tmpsex == myInfor.sex) { //Console.Error.WriteLine("当前的信息是一致的"); set.gameObject.SetActive(false); return; } var tmpdata = new LitJson.JsonData(); tmpdata["name"] = tarName; tmpdata["gender"] = tmpsex; tmpdata["birthday"] = tarBirthday; tmpdata["constellation"] = this.RushStar(); tmpdata["playerId"] = myInfor.uuid; HttpRequestManager.GetInstance().UpdatePlayerInfor(tmpdata.ToJson(), _UpdateInforBack); set.gameObject.SetActive(false); }
public async Task CorrectlyGetHtmlWhen_SimulatingWhoScoredSeasonParticipantRequest() { HttpRequestManager _httpmanager = new HttpRequestManager(); var realisedcookie = ""; var cookieResp = await _httpmanager.Get("https://www.whoscored.com/"); foreach (var sc in cookieResp.Headers.Where(x => x.Key == "Set-Cookie")) { foreach (var scv in sc.Value) { var v = scv.Split(';')[0]; realisedcookie = $"{v}; {realisedcookie}"; } } var ctx = new HttpRequestContext(); ctx.Method = "GET"; ctx.Host = "www.whoscored.com"; ctx.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9"; ctx.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36"; ctx.AddHeader("Accept-Encoding", "gzip, deflate, br"); ctx.AddHeader("Accept-Language", "en-GB,en;q=0."); ctx.AddCookie("Cookie", WebUtility.UrlEncode(realisedcookie)); ctx.Timeout = 120000; var detailResp = await _httpmanager.Get("https://www.whoscored.com/Regions/252/Tournaments/2/Seasons/7361", ctx); Debug.Write(detailResp.Content.ReadAsStringAsync().Result); Assert.IsTrue(detailResp.Content.ReadAsStringAsync().Result.Contains("Premier League tables")); }
public async Task <Res> DoGet <Req, Res>(Req RequestObject) where Req : GenericRequest where Res : GenericResponse { var Manager = new HttpRequestManager <Req, Res>(); var Response = await Manager.DoGet(RequestObject); return(Response); }
private void PicSave(GameObject obj) { if (picHead.sprite != null) { // head.sprite = picHead.sprite; //setHead.sprite = picHead.sprite; HttpRequestManager.GetInstance().UpLoadImage(picHead.sprite.texture, UploadImgSuccess); } }
public void SendPostTest() { string url = "https://myqa.materalcmx.com/api/User/Login"; Dictionary <string, string> urlParams = new Dictionary <string, string> { ["Account"] = "Admin", ["Password"] = "******", }; string result = HttpRequestManager.SendPost(url, urlParams); }
public List <TipologiaSoccorsoAereo> Get() { var APImanager = new HttpRequestManager <List <TipologiaSoccorsoAereo> >(_client, _memoryCache, _writeLog, _httpContext, _configuration); APImanager.Configure(); var result = APImanager.GetAsync(new Uri(Costanti.AFM + "requestType"), "*****@*****.**", "DNGFNC98R17D662Q").Result; return(result); }
private void WaitForNodeToFinishWorking() { var working = true; while (working) { working = HttpRequestManager.IsNodeWorking(); Thread.Sleep(TimeSpan.FromMilliseconds(200)); } }
public void SendPostTest() { string url = "http://localhost:60647/api/User/Login"; Dictionary <string, string> urlParams = new Dictionary <string, string> { ["Account"] = "Admin", ["Password"] = "******", }; string result = HttpRequestManager.SendPost(url, urlParams); }
private void WaitForNodeToStartWorking() { var working = false; while (!working) { working = HttpRequestManager.IsNodeWorking(); Thread.Sleep(TimeSpan.FromMilliseconds(200)); } }
public void Annulla(Models.Classi.ServiziEsterni.AFM.AnnullaRichiestaSoccorsoAereo richiesta, string CodiceRichiesta) { var APImanager = new HttpRequestManager <ErroreRichiestaSoccorsoAereo>(_client, _memoryCache, _writeLog, _httpContext, _configuration); APImanager.Configure(); var jsonString = JsonConvert.SerializeObject(richiesta); var content = new StringContent(jsonString); var result = APImanager.PostAsync(new Uri(Costanti.AFM + "rescueRequest/" + CodiceRichiesta + "/abort"), content, "*****@*****.**", "DNGFNC98R17D662Q").Result; }
public void Inserisci(NuovaRichiestaSoccorsoAereo richiesta) { var APImanager = new HttpRequestManager <ErroreRichiestaSoccorsoAereo>(_client, _memoryCache, _writeLog, _httpContext, _configuration); APImanager.Configure(); var jsonString = JsonConvert.SerializeObject(richiesta); var content = new StringContent(jsonString); var result = APImanager.PutAsync(new Uri(Costanti.AFM + "rescueRequest"), content, "*****@*****.**", "DNGFNC98R17D662Q").Result; }
/// <summary> /// Checks the phone data.自测手机号 /// </summary> private void _checkPhoneData() { if (GameModel.IsTelephone(input_phone.text) == true) { JsonData sendData = new JsonData(); sendData ["phone"] = input_phone.text; Console.WriteLine(sendData.ToJson()); HttpRequestManager.GetInstance().CheckPhoneNum(sendData.ToJson()); } }
public async Task PublishMessageScheduled_Success() { //Grab JSON data from file var data = System.IO.File.ReadAllText(@"Samples\SaveAgencyScheduled_Valid.json"); //Create message var message = JObject.Parse(data); //Submit request to in-memory server var response = await HttpRequestManager.SubmitRequest(_publishUrl, null, HttpMethod.Post, JsonConvert.SerializeObject(message)); //Check if response code 200 Assert.AreEqual(HttpStatusCode.OK, response.StatusCode); }
protected override void OnHostCreated() { // whenever the host is created (or recreated) we build a cache map of // all http function routes InitializeHttpFunctions(Instance.Functions); // since the request manager is created based on configurable // settings, it has to be recreated when host config changes _httpRequestManager = new WebScriptHostRequestManager(Instance.ScriptConfig.HttpConfiguration, PerformanceManager, _metricsLogger, _config.TraceWriter); base.OnHostCreated(); }
public void CreateRequestShouldReturnCancelStatusWhenJobHasStartedAndBeenCanceled() { WaitForNodeToFinishWorking(); var startedTest = DateTime.UtcNow; var manualResetEventSlim = new ManualResetEventSlim(); var checkTablesInManagerDbTimer = new CheckTablesInManagerDbTimer(ManagerDbConnectionString, 100); bool sentCancel = false; checkTablesInManagerDbTimer.GetJobItems += (sender, items) => { if (items.Any() && items.All(job => job.Ended == null) && sentCancel == false) { sentCancel = true; HttpRequestManager.CancelJob(items.First().JobId); } if (items.Any() && items.All(job => job.Ended != null)) { manualResetEventSlim.Set(); } }; checkTablesInManagerDbTimer.JobTimer.Start(); var jobQueueItem = JobHelper.GenerateTestJobRequests(1, 60).First(); var jobId = HttpRequestManager.AddJob(jobQueueItem); manualResetEventSlim.Wait(TimeSpan.FromSeconds(10)); Assert.IsTrue(!checkTablesInManagerDbTimer.ManagerDbRepository.JobQueueItems.Any(), "Job queue must be empty."); Assert.IsTrue(checkTablesInManagerDbTimer.ManagerDbRepository.Jobs.Any(), "Jobs must have been added."); Assert.IsTrue(checkTablesInManagerDbTimer.ManagerDbRepository.Jobs.Any(job => job.Result.StartsWith("Canceled", StringComparison.InvariantCultureIgnoreCase))); checkTablesInManagerDbTimer.Dispose(); var endedTest = DateTime.UtcNow; var description = string.Format("Creates Cancel Job with {0} manager and {1} nodes.", NumberOfManagers, NumberOfNodes); DatabaseHelper.AddPerformanceData(ManagerDbConnectionString, description, startedTest, endedTest); }
private void Update() { if (cameraset.create == true) //取れたら動く(updateなのでちょいこわ) { if (gps_x != 0 && gps_y != 0) { cameraset.create = false; post = GameObject.Find("Post"); HttpRequestManager p1 = post.GetComponent <HttpRequestManager>(); p1.Post(gps_x, gps_y); } } }
private void _ShowGameFeelByIndex(int index) { if (_controller.IsRequestGameFeel(index)) { var tmpData = new JsonData(); tmpData["page"] = index; HttpRequestManager.GetInstance().GetFeelingShareData(tmpData.ToJson(), _controller.UpdateGameFeels); } else { UpdateGameFeeling(index, _controller.GameFeelPages); } }
/// <summary> /// /// </summary> /// <returns></returns> public override bool CheckLogin() { string url = ""; string AppKey = ""; string AppId = ""; bool isOldVersion = false; GameChannel gameChannel = ZyGameBaseConfigManager.GameSetting.GetChannelSetting(ChannelType.channelDanle); if (gameChannel != null) { url = gameChannel.Url; isOldVersion = "0.1".Equals(gameChannel.Version); GameSdkSetting setting = gameChannel.GetSetting(_retailID); if (setting != null) { AppKey = setting.AppKey; AppId = setting.AppId; } } else { TraceLog.ReleaseWrite("The sdkChannelV2 Danle section is null."); } string sig = AMD5(_token + "|" + AppKey); string Url = Url = string.Format("{0}?app_id={1}&mid={2}&token={3}&sig={4}", url, AppId, _mid, _token, sig); string result = HttpRequestManager.GetStringData(Url, "GET"); DanleSDK sdk = null; try { sdk = JsonUtils.Deserialize <DanleSDK>(result); } catch (Exception ex) { new BaseLog().SaveLog(ex); return(false); } if (sdk == null || sdk.error_code != 0) { TraceLog.ReleaseWrite("Danlesdk login fail:{0},request url:{1}", result, Url); return(false); } string[] arr = SnsManager.LoginByRetail(_retailID, sdk.memberId); this.UserID = arr[0]; this.PassportID = arr[1]; SessionID = GetSessionId(); return(true); }
public void ShouldBeAbleToCreateManySuccessJobRequestTest() { var startedTest = DateTime.UtcNow; var manualResetEventSlim = new ManualResetEventSlim(); var createNewJobRequests = JobHelper.GenerateTestJobRequests(50, 1); var checkTablesInManagerDbTimer = new CheckTablesInManagerDbTimer(ManagerDbConnectionString, 2000); checkTablesInManagerDbTimer.GetJobItems += (sender, jobs) => { if (jobs.Count == createNewJobRequests.Count && jobs.All(job => job.Started != null && job.Ended != null)) { manualResetEventSlim.Set(); } }; checkTablesInManagerDbTimer.JobTimer.Start(); foreach (var newJobRequest in createNewJobRequests) { var jobId = HttpRequestManager.AddJob(newJobRequest); } manualResetEventSlim.Wait(TimeSpan.FromMinutes(5)); var jobsToAssert = checkTablesInManagerDbTimer.ManagerDbRepository.Jobs; Assert.IsTrue(jobsToAssert.Count == createNewJobRequests.Count); Assert.IsTrue(jobsToAssert.All(job => job.Result.StartsWith("Success", StringComparison.InvariantCultureIgnoreCase))); checkTablesInManagerDbTimer.Dispose(); var endedTest = DateTime.UtcNow; var description = string.Format("Creates {0} FAST = 1 second jobs with {1} manager and {2} nodes.", createNewJobRequests.Count, NumberOfManagers, NumberOfNodes); DatabaseHelper.AddPerformanceData(ManagerDbConnectionString, description, startedTest, endedTest); }
public async Task ProcessRequest_MaxOutstandingRequestsExceeded_RequestsAreRejected() { int maxQueueLength = 10; Func <HttpRequestMessage, CancellationToken, Task <HttpResponseMessage> > process = async(req, ct) => { await Task.Delay(100); return(new HttpResponseMessage(HttpStatusCode.OK)); }; var config = new HttpExtensionConfiguration { MaxOutstandingRequests = maxQueueLength, MaxConcurrentRequests = 1 }; var manager = new HttpRequestManager(config, _loggerFactory); // expect requests past the threshold to be rejected var tasks = new List <Task <HttpResponseMessage> >(); for (int i = 0; i < 25; i++) { var request = new HttpRequestMessage(); tasks.Add(manager.ProcessRequestAsync(request, process, CancellationToken.None)); } await Task.WhenAll(tasks); int countSuccess = tasks.Count(p => p.Result.StatusCode == HttpStatusCode.OK); Assert.Equal(maxQueueLength, countSuccess); int rejectCount = 25 - countSuccess; Assert.Equal(rejectCount, tasks.Count(p => p.Result.StatusCode == (HttpStatusCode)429)); IEnumerable <LogMessage> logMessages = _loggerProvider.GetAllLogMessages(); Assert.Equal(rejectCount, logMessages.Count()); Assert.True(logMessages.All(p => string.Compare("Http request queue limit of 10 has been exceeded.", p.FormattedMessage) == 0)); // send a number of requests not exceeding the limit // expect all to succeed tasks = new List <Task <HttpResponseMessage> >(); for (int i = 0; i < maxQueueLength; i++) { var request = new HttpRequestMessage(); tasks.Add(manager.ProcessRequestAsync(request, process, CancellationToken.None)); } await Task.WhenAll(tasks); Assert.True(tasks.All(p => p.Result.StatusCode == HttpStatusCode.OK)); }
private void _ShowSelfShareByIndex(int index) { if (_controller.IsRequestSelfFeel(index)) { var tmpData = new JsonData(); tmpData["page"] = index; tmpData["playerId"] = GameModel.GetInstance.myHandInfor.uuid; HttpRequestManager.GetInstance().GetFeelSelfData(tmpData.ToJson(), _controller.UpdateSelfFeels); } else { UpdateSelfFeeling(index, _controller.SelfFeelPages); } }
private void InitializeHttp() { // get the registered http configuration from the extension registry var extensions = Instance.ScriptConfig.HostConfig.GetService <IExtensionRegistry>(); var httpConfig = extensions.GetExtensions <IExtensionConfigProvider>().OfType <HttpExtensionConfiguration>().Single(); // whenever the host is created (or recreated) we build a cache map of // all http function routes InitializeHttpFunctions(Instance.Functions, httpConfig); // since the request manager is created based on configurable // settings, it has to be recreated when host config changes _httpRequestManager = new WebScriptHostRequestManager(httpConfig, PerformanceManager, _metricsLogger, _config.TraceWriter); }
public void JobShouldHaveStatusFailedIfFailedTest() { WaitForNodeToFinishWorking(); var startedTest = DateTime.UtcNow; var manualResetEventSlim = new ManualResetEventSlim(); var checkTablesInManagerDbTimer = new CheckTablesInManagerDbTimer(ManagerDbConnectionString, 100); checkTablesInManagerDbTimer.GetJobItems += (sender, items) => { if (items.Any() && items.All(job => job.Ended != null)) { if (!manualResetEventSlim.IsSet) { manualResetEventSlim.Set(); } } }; checkTablesInManagerDbTimer.JobTimer.Start(); var failingJobQueueItem = JobHelper.GenerateFailingJobParamsRequests(1).First(); var jobId = HttpRequestManager.AddJob(failingJobQueueItem); manualResetEventSlim.Wait(TimeSpan.FromSeconds(10)); Assert.IsTrue(!checkTablesInManagerDbTimer.ManagerDbRepository.JobQueueItems.Any(), "Job queue must be empty."); Assert.IsTrue(checkTablesInManagerDbTimer.ManagerDbRepository.Jobs.Any(), "Jobs must have been added."); Assert.IsTrue(checkTablesInManagerDbTimer.ManagerDbRepository. Jobs.Any(job => job.Result.StartsWith("fail", StringComparison.InvariantCultureIgnoreCase))); var endedTest = DateTime.UtcNow; var description = string.Format("Creates FAILED jobs with {0} manager and {1} nodes.", NumberOfManagers, NumberOfNodes); DatabaseHelper.AddPerformanceData(ManagerDbConnectionString, description, startedTest, endedTest); checkTablesInManagerDbTimer.Dispose(); }
public CgBaseController() { RequestManager = new HttpRequestManager(WebHostConfigurationManager.Current.GetApiDomainUrl); }
void Start() { instance = this; }