public IDictionary <string, PipedriveDataSchemaItem> GetPipedriveDataSchema(HttpWebRequestHelper helper) { var result = new Dictionary <string, PipedriveDataSchemaItem>(); result["id"] = new PipedriveDataSchemaItem { Key = "id", Name = "id", Field_Type = PipedriveDataSchemaItemType.FieldInteger }; result["name"] = new PipedriveDataSchemaItem { Key = "name", Name = "name", Field_Type = PipedriveDataSchemaItemType.FieldString }; result["url_title"] = new PipedriveDataSchemaItem { Key = "url_title", Name = "url_title", Field_Type = PipedriveDataSchemaItemType.FieldString }; result["order_nr"] = new PipedriveDataSchemaItem { Key = "order_nr", Name = "order_nr", Field_Type = PipedriveDataSchemaItemType.FieldInteger }; result["active"] = new PipedriveDataSchemaItem { Key = "active", Name = "active", Field_Type = PipedriveDataSchemaItemType.FieldBoolean }; result["deal_probability"] = new PipedriveDataSchemaItem { Key = "deal_probability", Name = "deal_probability", Field_Type = PipedriveDataSchemaItemType.FieldBoolean }; result["add_time"] = new PipedriveDataSchemaItem { Key = "add_time", Name = "add_time", Field_Type = PipedriveDataSchemaItemType.FieldDate }; result["update_time"] = new PipedriveDataSchemaItem { Key = "update_time", Name = "update_time", Field_Type = PipedriveDataSchemaItemType.FieldDate }; result["selected"] = new PipedriveDataSchemaItem { Key = "selected", Name = "selected", Field_Type = PipedriveDataSchemaItemType.FieldBoolean }; return(result); }
public IDictionary <string, PipedriveDataSchemaItem> GetPipedriveDataSchema(HttpWebRequestHelper helper) { var result = new Dictionary <string, PipedriveDataSchemaItem>(); result["id"] = new PipedriveDataSchemaItem { Key = "id", Name = "id", Field_Type = PipedriveDataSchemaItemType.FieldInteger }; result["name"] = new PipedriveDataSchemaItem { Key = "name", Name = "name", Field_Type = PipedriveDataSchemaItemType.FieldString }; result["email"] = new PipedriveDataSchemaItem { Key = "email", Name = "email", Field_Type = PipedriveDataSchemaItemType.FieldString }; result["locale"] = new PipedriveDataSchemaItem { Key = "locale", Name = "locale", Field_Type = PipedriveDataSchemaItemType.FieldString }; result["created"] = new PipedriveDataSchemaItem { Key = "created", Name = "created", Field_Type = PipedriveDataSchemaItemType.FieldDate }; result["modified"] = new PipedriveDataSchemaItem { Key = "modified", Name = "modified", Field_Type = PipedriveDataSchemaItemType.FieldDate }; result["last_login"] = new PipedriveDataSchemaItem { Key = "last_login", Name = "last_login", Field_Type = PipedriveDataSchemaItemType.FieldDate }; result["role_id"] = new PipedriveDataSchemaItem { Key = "role_id", Name = "role_id", Field_Type = PipedriveDataSchemaItemType.FieldInteger }; return(result); }
public void Setup() { Initialise(); _webRequest = new Mock <HttpWebRequest>(); TwitterApiRequestFactory .Setup(x => x.CreateLoginRequest()) .Returns(_webRequest.Object); _requestStream = new MemoryStream(); HttpWebRequestHelper .Setup(x => x.GetRequestStream(_webRequest.Object)) .Returns(Task.FromResult(_requestStream)); _webResponse = new Mock <HttpWebResponse>(); HttpWebRequestHelper .Setup(x => x.GetResponse(_webRequest.Object)) .Returns(Task.FromResult(_webResponse.Object)); _authenticationResult = TwitterAuthenticationBuilder.Build.AnInstance(); ObjectSerializer .Setup(x => x.DeserializeJson <TwitterAuthentication>(_webResponse.Object)) .Returns(_authenticationResult); _result = TwitterApiAdapter.Login().Result; }
public void ASynchronizationTwo() { string url = HttpClientHelper.baseAddress + "/api/index/webtest.html"; DateTime uptime = DateTime.Now; ResponseContent response = HttpWebRequestHelper.Post(url, "table=company&data=crazywolf000"); DateTime finshed = DateTime.Now; if (response == null) { MessageBox.Show("failure"); return; } if (response.Code == 1) { MessageBox.Show("ok" + response.Msg + " " + response.Data); DataTable dt = JsonHelper.JsonToDataTable(response.Data.ToString()) as DataTable; foreach (DataRow row in dt.Rows) { DatabaseOPtionHelper.GetInstance().update(row); } } else { MessageBox.Show("failure" + response.Msg); } double time = DateTimeHelper.DateDifflMilliseconds(uptime, finshed); ConsoleHelper.writeLine(time + " 微秒"); this.ASynchronizationTwo(); }
/// <summary> /// 测试网络获取 /// </summary> /// <param name="args"></param> private static void Main3(string[] args) { var result = HttpWebRequestHelper.GetWebContent("www.baidu.com", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/52.0.2743.116 Safari/537.36"); Console.WriteLine(result); Console.Read(); }
/// <summary> /// Retrieves customer details from eMaster API and returns a customer object. /// </summary> /// <returns>A customer object.</returns> public Customer Execute() { try { const string action = "getcustomerdetails"; var input = Config.SystemId + _customerId + Config.SecretKey + Config.Random; var checksum = CryptoHelper.CalculateMd5Hash(input); var url = string.Format(Config.HostUrl + "&checksum={0}&system_id={1}&action={2}&de_id={3}&random={4}&type=json", checksum, Config.SystemId, action, _customerId, Config.Random); var response = HttpWebRequestHelper.MakeRequest(url, 5000); var line = HttpWebRequestHelper.GetHttpWebResponseData(response); dynamic obj = JsonConvert.DeserializeObject(line); if (obj.Error != null) { Log.Error("GetCustomerDataCommand Error - " + obj.Error); return(new Customer()); } var customer = new Customer { UserId = _customerId.ToString(), FirstName = obj.first_name, LastName = obj.surname, Email = obj.email }; return(customer); } catch (Exception ex) { Log.Error("GetCustomerDataCommand", ex); return(new Customer()); } }
/// <summary> /// 加载或刷新代理ip,当内存没有缓存代理ip时,读磁盘缓存,如果磁盘没缓存 /// 则获取新的代理ip;当缓存的代理ip过时,则再次去获取新的代理ip /// </summary> /// <returns>如果加载或刷新成功返回true</returns> public virtual bool LoadOrRefreshProxyIp() { ProxyUserInfo proxyUserInfo = CurrentProxyUserInfo(); lock (typeof(UseProxyIp)) { if (IpProxyCacheList.Count == 0 && _portProxyCacheList.Count == 0 && _limitDateCacheList.Count == 0) { try { Console.WriteLine($"发现没有缓存的代理ip,从磁盘读取“{ProxyIpCacheFilePath}”缓存信息...."); List <DateTime?> tempLimitDateCacheList = null; if (!Explain(out IpProxyCacheList, out _portProxyCacheList, out tempLimitDateCacheList, File.ReadAllText(ProxyIpCacheFilePath))) { Console.WriteLine("解析缓存信息失败!"); } _limitDateCacheList = tempLimitDateCacheList; } catch (Exception ex) { Console.WriteLine($"读取缓存信息出错", ex); } } Console.WriteLine("检查代理ip是否有效。。。"); if (IpProxyCacheList.Count == 0 || DateTime.Now > _limitDateCacheList[_indexCache % IpProxyCacheList.Count]) { Console.WriteLine($"发送:{proxyUserInfo.GetProxyIpUrl} 获取代理ip"); string retText = HttpWebRequestHelper.HttpGet(proxyUserInfo.GetProxyIpUrl).GetText(); while (CheckNeedAddWhite(retText)) { Console.WriteLine($"获取代理ip时返回:{retText}"); string whiteIp = NetworkHelper.GetOuterNetIP(); Console.WriteLine($"需要添加 {whiteIp} 到白名单。"); string ret = HttpWebRequestHelper.HttpGet(CurrentProxyUserInfo().GetWhiteIpUrl(NetworkHelper.GetOuterNetIP())).GetText(); Console.WriteLine($"添加白名单返回结果:{ret}"); retText = HttpWebRequestHelper.HttpGet(proxyUserInfo.GetProxyIpUrl).GetText(); } retText = AddLimitDate(retText); Console.WriteLine($"获取代理ip结果:{retText}..."); Console.WriteLine("正在解析代理ip...."); List <DateTime?> tempLimitDateCacheList = null; if (Explain(out IpProxyCacheList, out _portProxyCacheList, out tempLimitDateCacheList, retText)) { File.WriteAllText(ProxyIpCacheFilePath, retText); _limitDateCacheList = tempLimitDateCacheList; } else { Console.WriteLine($"解析代理ip出错"); CurrentProxyUserInfo(true); Console.WriteLine($"当前获取代理ip的url已失效,切换到下一个url:'{proxyUserInfo.GetProxyIpUrl}'。"); return(false); } } } return(true); }
public T SendGetRequest <T>(string methodName, Dictionary <string, string> parameters, string apiUrl, List <KeyValuePair <string, string> > keyValueParameters = null) { var response = HttpWebRequestHelper.SendGetRequest(String.Format("{0}{1}", apiUrl, methodName), parameters, keyValueParameters); if (response == null) { throw new Exception("Unable to get resposne"); } return(JsonConvert.DeserializeObject <T>(HttpWebRequestHelper.GetHttpWebResponseData(response))); }
public static HttpWebRequestHelper HttpRequestHelper() { if (requestHelper == null) { lock (lock_request) { if (requestHelper == null) { requestHelper = new HttpWebRequestHelper(); } } } return requestHelper; }
/// <summary> /// 执行 /// </summary> /// <param name="key"></param> /// <param name="data"></param> public void Execute(string key, object data) { YK.Platform.Core.Model.Event eventEntity = eventEntitys.Where(w => w.Key == key).FirstOrDefault(); if (eventEntity != null) { foreach (var item in eventEntity.Subscribers) { HttpWebRequestHelper request = new HttpWebRequestHelper(); request.Post(item.Url, Newtonsoft.Json.JsonConvert.SerializeObject(data)); } } }
public Poem GetPoem(int poemId) { var serviceUrl = _configurationManager.Get("ApiEndPoints:GetPoem").Replace("{poemId}", poemId.ToString()); var serviceResult = HttpWebRequestHelper.GetDataWithResult <HttpWebRequestBaseResult <Poem> >(serviceUrl); if (serviceResult == null || !serviceResult.Success) { return(new Poem()); } return(serviceResult.Item); }
/// <summary> /// 获取微信抬头 /// </summary> /// <param name="scanText"></param> /// <returns></returns> public static string GetScanTitle(string scanText) { string token = GetToken(); string getScanTitleUrl = string.Format(WechatConfig.GetScanTitle, token); var data = JsonConvert.SerializeObject(new { scan_text = scanText }); string result = HttpWebRequestHelper.HttpPostOne(data, getScanTitleUrl, 90); return(result); }
public void Should_try_to_POST_back_to_home_base_for_a_resource_that_does_not_exist() { var address = new Uri(Application.Current.Host.Source, "/SomeRandomRequest"); var httpWebRequestHelper = new HttpWebRequestHelper(address, "POST", "data=asdf&ffff=aaaa"); httpWebRequestHelper.ResponseComplete += e => { AssertErrorIs404(e.Error); EnqueueTestComplete(); }; httpWebRequestHelper.Execute(); }
public string postmessage(string content, string mobile) { string url = sendMessageConfig[0]; string paramData = (sendMessageConfig[1]); paramData = paramData.Replace("#", "&"); paramData = string.Format(paramData, mobile, content); string status = HttpWebRequestHelper.PostWebRequest(url, Convert.ToString(paramData), Encoding.UTF8); return(status); }
public IList <Poet> GetPoet(string letter, int pageIndex, int pageSize) { var serviceUrl = _configurationManager.Get("ApiEndPoints:GetPoetsByLetter") .Replace("{letter}", letter) .Replace("{pageIndex}", pageIndex.ToString()) .Replace("{pageSize}", pageSize.ToString()); HttpWebRequestPoetResult <IList <Poet> > data = HttpWebRequestHelper.GetDataWithResult <HttpWebRequestPoetResult <IList <Poet> > >(serviceUrl); if (data != null) { return(data.PoetResponseList); } return(new List <Poet>()); }
/// <summary> /// 微信公众平台专用的图片上传功能 /// </summary> /// <param name="serverId">微信图片服务器端ID</param> /// <param name="pathName">图片保存的路径名称</param> /// <returns></returns> public JsonResult UploadSingleWxImage(string serverId, string pathName) { Image image = HttpWebRequestHelper.HttpGet($"http://file.api.weixin.qq.com/cgi-bin/media/get?access_token=access_token&media_id={serverId}").GetImage(); string imgName = FileHelper.SaveImageBySha1(image, $"{Server.MapPath("~/uploadFiles/")}{pathName}"); using (Image img = Image.FromFile($"{Server.MapPath("~/uploadFiles/")}{pathName}{Path.DirectorySeparatorChar}{imgName}")) { using (Image thumbnailImg = img.GetThumbnailImage(150, img.Height * 150 / img.Width, () => false, IntPtr.Zero)) { string thumbnailName = FileHelper.SaveImageBySha1(thumbnailImg, $"{Server.MapPath("~/uploadFiles/")}{pathName}"); return(MyJson(new Result { code = 0, data = new { thumbnailName = thumbnailName, imgName = imgName, imgWidth = img.Width, imgHeight = img.Height } })); } } }
public async Task <bool> PostGPSPosition(double latitude, double longitude, int trackId) { TrackPosition latestPosition = new TrackPosition(); var postBody = new { sid = 1, uid = trackId, longitude = longitude, latitude = latitude, recoDt = DateTime.Now }; var customWebResponse = await HttpWebRequestHelper.PostHttpWebResponse(Constants.PostCurrentPositionAPI, postBody); if (customWebResponse != null) { if (customWebResponse.Response.StatusCode == System.Net.HttpStatusCode.OK) { // latestPosition = this.ConvertResponseToTrackPosition(customWebResponse.ResponseData); } } return(true); }
public void IfUnsuccessfulCall_ReturnNull() { var factory = new MockHttpWebFactory().CreateMockFactory(HttpWebRequestHelper.EmptyResult(), HttpStatusCode.InternalServerError); var settings = new ShcSettings { Url = "url", SHCDocType = "docType", FindDocumentsAction = "findDocumentsAction", ServiceName = "serviceName", LinkUrl = "linkUrl" }; var serviceUnderTest = new SkillsHealthCheckService(Options.Create(settings), factory); serviceUnderTest.Invoking(x => x.GetShcDocumentsForUser("12345")).Should().Throw <ShcException>() .WithMessage("Failure to get SHC document. LLA ID: 12345, Code: InternalServerError"); }
/// <summary> /// 下载股票列表 /// </summary> public void DownloadStockList() { try { HttpWebRequestHelper requestHelper = new HttpWebRequestHelper(); string getStockListUrl = DataHelper.GetConfig("getStockListUrl"); string getPlateCode = DataHelper.GetConfig("getPlateCode"); string htmlSource = requestHelper.GetHtmlSource(getStockListUrl, Encoding.Default); var stockList = GetStockList(htmlSource, getPlateCode); foreach (var item in stockList) { var res = proc.insertUpdateStockList(item.Key, item.Value); } } catch (Exception ex) { LogHelper.WriteLog("下载股票列表失败", ex); } }
public void IfSuccessfulCall_ButNoData_ReturnEmptyList() { var factory = new MockHttpWebFactory().CreateMockFactory(HttpWebRequestHelper.EmptyResult(), HttpStatusCode.OK); var settings = new ShcSettings { Url = "url", SHCDocType = "docType", FindDocumentsAction = "findDocumentsAction", ServiceName = "serviceName", LinkUrl = "linkUrl" }; var serviceUnderTest = new SkillsHealthCheckService(Options.Create(settings), factory); var documents = serviceUnderTest.GetShcDocumentsForUser("12345"); documents.Should().NotBeNull(); documents.Should().BeEmpty(); documents.Count.Should().Be(0); }
public async Task <List <TrackPosition> > GetLatestTrackPosition(string TrackingNumber) { List <TrackPosition> latestPositions = new List <TrackPosition>(); var customWebResponse = await HttpWebRequestHelper.GetHttpWebResponse(string.Format(Constants.GetCurrentPositionAPI, TrackingNumber)); if (customWebResponse != null) { if (customWebResponse.Response.StatusCode == System.Net.HttpStatusCode.OK) { latestPositions = this.ConvertResponseToTrackPosition(customWebResponse.ResponseData); } else//Test Data { latestPositions = this.ConvertResponseToTrackPosition(""); } } return(latestPositions); }
public LoginResponseType VerifyUserLoginByFromBody(string uid, string pwd) { try { Dictionary <string, string> dict = new Dictionary <string, string>(); dict.Add("user_id", uid); dict.Add("user_password", pwd); var result = HttpWebRequestHelper.HttpRequest(getOrPost: "POST", url: "http://localhost:5678/api/LoginService/LoginByFromBody?uid=123456", headers: null, parameters: dict, dataEncoding: Encoding.UTF8, contentType: "application/json"); return(JsonConvert.DeserializeObject <LoginResponseType>(result)); } catch (Exception ex) { throw ex; } }
/// <summary> /// 发送获取所有任务表的请求 /// </summary> private void SendGetAllTaskFoldersRequest() { var sharedPreferences = GetSharedPreferences("CooperPreferences", FileCreationMode.Private); var cookie = CookieManager.GetCookie(sharedPreferences, "CooperCookie"); var url = Constants.GET_TASKFOLDER_LIST_URL; HttpWebRequestHelper.SendHttpPostRequest(cookie, url, null, response => { var result = HttpWebRequestHelper.GetTextFromResponse(response); _logger.InfoFormat("Request URL:{0}, StatusCode:{1}", url, response.StatusCode); _logger.InfoFormat("Result:{0}", result); var jsonValue = JsonObject.Parse(result); var taskFolders = new List <TaskFolder>(); var obj = jsonValue as JsonObject; foreach (var pair in obj) { if (Utils.IsNumber(pair.Key)) { var taskFolder = new TaskFolder(); taskFolder.ID = Utils.ConvertType <int>(pair.Key); taskFolder.Name = pair.Value; taskFolders.Add(taskFolder); SaveTaskFolder(taskFolder); } else { _logger.InfoFormat("Fetched TaskFolder:{0}", pair.Key); } } RunOnUiThread(() => { var folders = _taskFolderService.GetAllTaskFolders(); _listView.Adapter = new TaskFolderAdapter(this, Resource.Layout.TaskFolderListItem, folders.ToArray()); }); }); }
/// <summary> /// 发送登陆请求 /// </summary> private void SendLoginRequest() { var url = Constants.LOGIN_URL; var postData = string.Format("state=login&cbDomain={0}&tbLoginName={1}&tbPassword={2}", _domain, _userName, _pasword); HttpWebRequestHelper.SendHttpPostRequest(null, url, postData, response => { var result = HttpWebRequestHelper.GetTextFromResponse(response); _logger.InfoFormat("Request URL:{0}, StatusCode:{1}", url, response.StatusCode); _logger.InfoFormat("Result:{0}", result); if (response.Cookies.Count > 0) { var cookie = response.Cookies.Cast <Cookie>().First(); var sharedPreferences = GetSharedPreferences("CooperPreferences", FileCreationMode.Private); CookieManager.SaveCookie(sharedPreferences, "CooperCookie", cookie); } }); }
private static string getFromBaidu() { string resultJson = HttpWebRequestHelper.GetBaiduAcesessToken( BaiduAipHelper.BaiduTokenUrl, ConfigurationHelper.GetConfig(ConfigItemName.baiduApiKey.ToString()), ConfigurationHelper.GetConfig(ConfigItemName.baiduApiSecretKey.ToString()) ); string replaceJson = StringHelper.jsonCamelCaseToDBnameing(resultJson); mToken = JsonHelper.JsonToObject(replaceJson, typeof(BDAccessToken)) as BDAccessToken; mToken.getDate = DateTimeHelper.getCurrentDateTime(); if (mToken.error != null) { return(null); } else { writeToxml(); return(mToken.accessToken); } }
public void Updata() { string url = HttpClientHelper.baseAddress + "/api/index/syncUp.html"; //SQLiteHelper helper = new SQLiteHelper(); //string sql = DbBaseHelper.getSelectSql("company"); //DataTable dt = helper.ExcuteDataTable(sql, null); //string json = JsonHelper.ObjectToJson(dt); string postData = "table=company&data=" + "4444444444444444444"; DateTime uptime = DateTime.Now; // ResponseContent response = HttpClientHelper.PostAsync(url, NetBaseHelper.getListKeyValuePAir(postData)).Result; ResponseContent response = HttpWebRequestHelper.Post(url, postData); DateTime finshed = DateTime.Now; if (response != null) { MessageBox.Show("Code:" + response.Code + " Msg: " + response.Msg); } double time = DateTimeHelper.DateDifflMilliseconds(uptime, finshed); ConsoleHelper.writeLine(time + " 微秒"); }
public PoemOfPoetItem GetPoetOfPoems(int poetId, int pageIndex, int pageSize) { var serviceUrl = _configurationManager.Get("ApiEndPoints:GetPoetsOfPoem") .Replace("{poetId}", poetId.ToString()) .Replace("{pageIndex}", pageIndex.ToString()) .Replace("{pageSize}", pageSize.ToString()); var serviceResult = HttpWebRequestHelper.GetDataWithResult <HttpWebRequestBaseResult <PoemOfPoetItem> >(serviceUrl); if (serviceResult != null) { return(serviceResult.Item); } return(new PoemOfPoetItem { PoetName = "", PoetId = 0, PoemOfPoetResponse = new List <PoemOfPoetInformaton>(), TotalPageNumber = 0, TotalPoemNumber = 0 }); }
/// <summary> /// 发送心跳报文,冷却时间为5分钟一次。 /// </summary> public void SendHeartbeat() { if ((DateTime.Now - LastHeartbeatDate).TotalMinutes > 5) { Log.Debug("发送心跳报文..."); try { HeartbeatEntity heartbeatEntity = CrawlerService.GetHeartbeatEntityInfo(); var param = MySignHelper.New(SignKey, SignSecret).Params(); param.Add("RobotMac", NetworkHelper.GetMacAddress()); param.Add("Remark", heartbeatEntity.Remark); param.Add("ExtendField", heartbeatEntity.ExtendField); param.Add("MonitorServer", heartbeatEntity.MonitorServer); string text = HttpWebRequestHelper.HttpGet($"{MonitorServer}HeartbeatEntity/Send", param).GetText(); LastHeartbeatDate = DateTime.Now; } catch (Exception ex) { Log.Error($"发送心跳报文出错,错误原因:{ex.Message}", ex); CrawlerService.HeartbeatException(ex); } } }
public void Setup() { Initialise(); _query = "Search criteria"; _authToken = TwitterAuthenticationBuilder.Build.AnInstance(); _webRequest = new Mock <HttpWebRequest>(); TwitterApiRequestFactory .Setup(x => x.CreateSearchTweetRequest(_query, _authToken)) .Returns(_webRequest.Object); _webResponse = new Mock <HttpWebResponse>(); HttpWebRequestHelper .Setup(x => x.GetResponse(_webRequest.Object)) .Returns(Task.FromResult(_webResponse.Object)); _tweetCollection = TweetCollectionBuilder.Build.AnInstance(); ObjectSerializer .Setup(x => x.DeserializeJson <TweetCollection>(_webResponse.Object)) .Returns(_tweetCollection); _result = TwitterApiAdapter.Search(_query, _authToken).Result; }
public IDictionary <string, PipedriveDataSchemaItem> GetPipedriveDataSchema(HttpWebRequestHelper helper) => PipedriveDataSchema.GetPipedriveDataSchema(helper, Name, $"https://api.pipedrive.com/v1/dealFields?api_token={APIToken}");
public void Start() { Utility.WriteDebugInfo("Comet Client Starting"); ConnectState state = null; try { if (!this.isWaiting) { lock (this.locker) { if (!this.isWaiting) { // well, we arent really waiting yet, but the connecting is considered part of it // since another attempt should not be made while we are trying this attempt this.isWaiting = true; // dont reconnect too quickly or it causes HttpWebRequest exceptions DateTime now = DateTime.Now; if (now < this.nextReconnectTime) { int wait = (this.nextReconnectTime - now).Milliseconds; System.Threading.Thread.Sleep(wait); } // build HTTP request HttpWebRequest request = null; // this handles cases where the url is not only malformed, but unacceptable to HttpWebRequest (not http or https, for example) // in these cases, we dont want to fire OnDisconnected because clients that are set to auto-reconnect will end up in an endless loop try { request = (HttpWebRequest)WebRequest.Create(this.url); } catch { OnInvalidUrl(); return; } request.AllowWriteStreamBuffering = false; request.Pipelined = true; state = new ConnectState(request); connecting.Add(state.GUID, state); request.Method = "GET"; request.UserAgent = "notify.io Windows Client"; request.Timeout = this.autoResetInterval; // deal with a bug request.KeepAlive = false; request.ServicePoint.MaxIdleTime = this.reconnectDelay * 1000; Utility.WriteDebugInfo("CometClient waiting: TRUE"); HttpWebRequestHelper hwrh = new HttpWebRequestHelper(request); hwrh.GetResponseAsync(ConnectCallback, state); this.OnConnected(); } else { //Utility.WriteLine("already connecting 2"); } } } else { //Utility.WriteLine("already connecting 1"); } } catch { //Utility.WriteLine("EXCEPTION - CometClient.Start"); // suppress OnDisconnected(); } }
public static IDictionary <string, PipedriveDataSchemaItem> GetPipedriveDataSchema(HttpWebRequestHelper helper, string name, string url) { var result = new Dictionary <string, PipedriveDataSchemaItem>(); var schema = helper.GetRequestAsJson(url); foreach (var item in schema["data"]) { var pdsi = new PipedriveDataSchemaItem(); pdsi.Id = ConvertTo <int>(item["id"]?.ToObject <object>(), -1); pdsi.Key = item["key"].ToObject <string>(); pdsi.Name = item["name"]?.ToObject <string>(); pdsi.Order_nr = ConvertTo <int>(item["order_nr"]?.ToObject <object>(), 0); pdsi.Picklist_Data = item["picklist_data"]?.ToObject <string>(); switch (item["field_type"]?.ToObject <string>()) { case "int": { pdsi.Field_Type = PipedriveDataSchemaItemType.FieldInteger; break; } case "varchar": { switch (pdsi.Key) { case "email": { pdsi.Field_Type = PipedriveDataSchemaItemType.FieldEmail; pdsi.Parser = new EmailValueParser(); break; } case "im": { pdsi.Field_Type = PipedriveDataSchemaItemType.FieldInstantMessenger; pdsi.Parser = new EmailValueParser(); break; } default: { pdsi.Field_Type = PipedriveDataSchemaItemType.FieldString; break; } } break; } case "visible_to": { pdsi.Field_Type = PipedriveDataSchemaItemType.FieldVisibleTo; break; } case "text": { pdsi.Field_Type = PipedriveDataSchemaItemType.FieldText; break; } case "double": { pdsi.Field_Type = PipedriveDataSchemaItemType.FieldDouble; break; } case "user": { pdsi.Field_Type = PipedriveDataSchemaItemType.FieldUser; pdsi.Parser = new UserValueParser(); break; } case "org": { pdsi.Field_Type = PipedriveDataSchemaItemType.FieldOrg; pdsi.Parser = new OrgValueParser(); break; } case "date": { pdsi.Field_Type = PipedriveDataSchemaItemType.FieldDate; break; } case "phone": { pdsi.Field_Type = PipedriveDataSchemaItemType.FieldPhone; pdsi.Parser = new EmailValueParser(); break; } case "enum": { pdsi.Field_Type = PipedriveDataSchemaItemType.FieldEnum; pdsi.Parser = new EnumValueParser() { Options = pdsi.Options }; break; } case "people": { pdsi.Field_Type = PipedriveDataSchemaItemType.FieldPeople; pdsi.Parser = new PeopleValueParser(); break; } case "monetary": { pdsi.Field_Type = PipedriveDataSchemaItemType.FieldDecimal; break; } default: { pdsi.Field_Type = PipedriveDataSchemaItemType.FieldString; break; } } pdsi.Add_time = item["add_time"]?.ToObject <DateTime?>(); pdsi.Update_time = item["update_time"]?.ToObject <DateTime?>(); pdsi.Last_updated_by_user_id = ConvertTo <int>(item["last_updated_by_user_id"]?.ToObject <object>(), -1); pdsi.Active_flag = ConvertTo <bool>(item["active_flag"]?.ToObject <object>(), false); pdsi.Edit_flag = ConvertTo <bool>(item["edit_flag"]?.ToObject <object>(), false); pdsi.Index_visible_flag = ConvertTo <bool>(item["index_visible_flag"]?.ToObject <object>(), false); pdsi.Details_visible_flag = ConvertTo <bool>(item["details_visible_flag"]?.ToObject <object>(), false); pdsi.Add_visible_flag = ConvertTo <bool>(item["add_visible_flag"]?.ToObject <object>(), false); pdsi.Important_flag = ConvertTo <bool>(item["important_flag"]?.ToObject <object>(), false); pdsi.Bulk_edit_allowed = ConvertTo <bool>(item["bulk_edit_allowed"]?.ToObject <object>(), false); pdsi.Searchable_flag = ConvertTo <bool>(item["searchable_flag"]?.ToObject <object>(), false); pdsi.Filtering_allowed = ConvertTo <bool>(item["filtering_allowed"]?.ToObject <object>(), false); pdsi.Sortable_flag = ConvertTo <bool>(item["sortable_flag"]?.ToObject <object>(), false); //pdsi.Mandatory_flag = ConvertTo<bool>(item["mandatory_flag"]?.ToObject<object>(), false); // TODO: This errors as it can return an expression. if (item["options"] is JArray array) { foreach (var i in array) { pdsi.Options[i["id"].ToObject <string>()] = i["label"].ToObject <string>(); } } ApplyCustomFixesForPipedriveErrors(pdsi, name); result[pdsi.Key] = pdsi; } return(result); }