Пример #1
0
        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);
        }
Пример #3
0
        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();
        }
Пример #5
0
        /// <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());
            }
        }
Пример #7
0
        /// <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);
        }
Пример #8
0
        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)));
        }
Пример #9
0
 public static HttpWebRequestHelper HttpRequestHelper()
 {
     if (requestHelper == null) {
         lock (lock_request) {
             if (requestHelper == null) {
                 requestHelper = new HttpWebRequestHelper();
             }
         }
     }
     return requestHelper;
 }
Пример #10
0
 /// <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));
         }
     }
 }
Пример #11
0
        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);
        }
Пример #12
0
        /// <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);
        }
Пример #13
0
        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();
        }
Пример #14
0
    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);
    }
Пример #15
0
        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>());
        }
Пример #16
0
        /// <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 }
                    }));
                }
            }
        }
Пример #17
0
        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");
        }
Пример #19
0
 /// <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);
        }
Пример #21
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);
        }
Пример #22
0
 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;
     }
 }
Пример #23
0
        /// <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());
                });
            });
        }
Пример #24
0
        /// <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 + " 微秒");
        }
Пример #27
0
        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
            });
        }
Пример #28
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);
         }
     }
 }
Пример #29
0
        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;
        }
Пример #30
0
        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();
        }
Пример #31
0
 public IDictionary <string, PipedriveDataSchemaItem> GetPipedriveDataSchema(HttpWebRequestHelper helper) =>
 PipedriveDataSchema.GetPipedriveDataSchema(helper, Name, $"https://api.pipedrive.com/v1/dealFields?api_token={APIToken}");
Пример #32
0
        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);
        }