public ApiStepResult Get(Guid stepId, string rootPath, string resource)
        {
            DateTime start = DateTime.Now;
            var client = new RestClient(rootPath);
            IRestResponse restResponse = client.Get(new RestRequest(resource));

            TimeSpan span = DateTime.Now - start;
            return new ApiStepResult(stepId, restResponse.StatusCode, restResponse.Content, _timeProvider.Now(),
                span.TotalMilliseconds);
        }
        static private async Task<Images> download(string domain, string path, string pattern)
        {
            var result = new Images();
            var client = new RestClient(domain);
            var restTasks = new List<Task<IRestResponse>>();
            var response = client.Get(new RestRequest(path, Method.GET));

            foreach (Match match in Regex.Matches(response.Content, pattern))
            {
                string fileName = match.Captures[0].Value.Replace(">", "");
                result.Add(fileName, 0);
                if (!File.Exists(baseDir(path) + "\\" + fileName))
                {
                    var img = new RestRequest(path + fileName, Method.GET);
                    img.AddParameter("fileName", fileName);
                    restTasks.Add(client.ExecuteTaskAsync(img));
                }
            }

            foreach (var restTask in restTasks)
            {
                response = await restTask;
                string fileName = response.Request.Parameters[0].Value.ToString();
                result[fileName] = (int)response.StatusCode;
                if (response.StatusCode == HttpStatusCode.OK)
                {
                    var fs = File.Create(baseDir(path) + "\\" + fileName);
                    await fs.WriteAsync(response.RawBytes, 0, response.RawBytes.Length);
                    fs.Close();
                }
            }
            return result;
        }
        public string Translate(string resource, string locale, string targetLocale)
        {
            var restClient = new RestClient(_baseUrl);
            var request = new RestRequest("Translate") { OnBeforeDeserialization = resp => { resp.ContentType = "application/json"; } };
            request.AddQueryParameter("text", resource);
            request.AddQueryParameter("from", locale);
            request.AddQueryParameter("to", targetLocale);
            request.AddHeader("Authorization", $"Bearer {_accessToken.access_token}");

            var response = restClient.Get(request);
            return response.Content.Replace("\"", "");
        }
        public void LbDeserializeTest()
        {
            DateTime? currDate = new DateTime(2014, 1, 1);

            var lbClient = new RestClient(ConfigurationManager.AppSettings["lbBaseUri"]);
            var req = new RestRequest(String.Format(ConfigurationManager.AppSettings["lbCurrencyServiceUrl"], currDate.Value.ToShortDateString()), Method.GET);
            var resp = lbClient.Get(req);

            //====================

            //var rates = new ExchangeRates();
            var serializer = new XmlSerializer(typeof(ExchangeRates));

            var reader = XmlReader.Create(new StringReader(resp.Content));

            var rates = (ExchangeRates)serializer.Deserialize(reader);

            //====================

            Assert.IsNotNull(rates);
            Assert.IsNotNull(rates.item);
            Assert.IsTrue(rates.item.Any());

            Console.WriteLine(rates.item.Count());
        }
        private double DoJsonTest(int threadId, int numberOfRequests)
        {
            var client = new RestClient("http://localhost:4472/api");
            var request = new RestRequest("coffees/", Method.GET);
            request.AddHeader("accept", "application/json");

            long[] times = new long[numberOfRequests];

            for (int i = 0; i < numberOfRequests; i++)
            {
                Stopwatch watch = new Stopwatch();
                watch.Start();

                var response = client.Get<List<Coffee>>(request);
            
                watch.Stop();
                Console.WriteLine("Thread {0}, {1} ms, {2} bytes, {3} status code", threadId, watch.ElapsedMilliseconds,
                    response.RawBytes.Length, response.StatusCode);
                if (i > 0)
                {
                    times[i] = watch.ElapsedMilliseconds;
                }
            }

            return times.Average();
        }
        // GET: User
        public ViewResult Index()
        {
            var token = _sessionHelper.GetToken();

            if (token == "SessionIsNull")
                return View("ErorrForm", new ErorrMessage { Message = "Нет токена" });

            var clientUser = new RestClient(SiteConn.UserWebApiServer);
            var getUser = new RestRequest($"User");

            getUser.AddHeader("Authorization", token);
            getUser.AddHeader("Content-Type", "application / json");

            getUser.AddParameter("login", _sessionHelper.GetLogin());

            var response = clientUser.Get<UserInfo>(getUser);

            if(response.StatusCode == 0)
                return View("ErorrForm", new ErorrMessage {Message = "Нет данных для отображения" });
            if (response.Data == null)
                return View("ErorrForm", new ErorrMessage { Message = "Нет данных для отображения" });
            

            return View(response.Data);
        }
Example #7
0
        // private OdrderList orderList;
        /// <summary>
        /// 设置任务订单数量
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btn_order_Click(object sender, EventArgs e)
        {
            if (!tbx_order.Text.StartsWith("http://") || tbx_order.Text.IndexOf(".") < 0)
            {
                MessageBox.Show("请输入正常可访问的订单列表地址", "提示");
                return;
            }
            toolStripProgressBar1.Value   = tb_num.Value = 0;
            toolStripProgressBar1.Maximum = tb_num.Maximum = 0;

            var client = new RestSharp.RestClient();

            client.BaseUrl = new Uri(tbx_order.Text);
            var request = new RestSharp.RestRequest();
            var resp    = client.Get(request);

            if (resp.IsSuccessful)
            {
                var orderList = GetOdrderList(resp.Content, client.BaseUrl);

                tb_num.Maximum             = orderList.Orders.Count();
                tb_num.Enabled             = true;
                lb_num.Text                = $"{tb_num.Value}/{tb_num.Maximum}";
                toolStripStatusLabel1.Text = "获取订单数量完毕,最大可截图数量为:" + tb_num.Maximum;
            }
            else
            {
                toolStripStatusLabel1.Text = "获取订单数量异常,请检查是否生成";
            }
        }
 public IRestResponse Run(Step step, ScenarioContext context)
 {
     var apiPostStep = (ApiGetStep)step;
     var client = new RestClient(apiPostStep.Host);
     var restRequest = BuildRequest(apiPostStep);
     return client.Get(restRequest);
 }
        public IEnumerable<IStockTicker> GetStockData(string symbol, int days)
        {
            try
            {
                // create the REST client
                var client = new RestClient(STOCK_DATA_BASE_URI);
                // calculate the start from date
                //var fromDate = DateTime.Now.Substract(TimeSpan.FromDays(days));
                // create the REST request
                var request = new RestRequest().AddQueryParameter(STOCK_DATA_SYMBOL_PARAM, symbol)
                                               //.AddQueryParameter(STOCK_DATA_FROM_MONTH_PARAM, (fromDate.Month - 1).ToString())
                                               //.AddQueryParameter(STOCK_DATA_FROM_DAYS_PARAM, fromDate.Day.ToString())
                                               //.AddQueryParameter(STOCK_DATA_FROM_YEAR_PARAM, fromDate.Year.ToString())
                                               //.AddQueryParameter(STOCK_DATA_TO_MONTH_PARAM, (DateTime.Now.Month - 1).ToString())
                                               //.AddQueryParameter(STOCK_DATA_TO_DAYS_PARAM, DateTime.Now.Day.ToString())
                                               //.AddQueryParameter(STOCK_DATA_TO_YEAR_PARAM, DateTime.Now.Year.ToString())
                                               .AddQueryParameter(STOCK_DATA_INTERVAL_PARAM, "d");
                // execute request
                var response = client.Get(request);

                using (var textReader = new StringReader(response.Content))
                using (var csvReader = new CsvReader(textReader))
                {
                    return csvReader.GetRecords<StockTicker>()
                                    .Take(days)
                                    .ToList();
                }
            }
            catch (Exception ex)
            {
                return new List<IStockTicker>();
            }
        }
Example #10
0
        static void Main(string[] args)
        {
            string[] API = { "http://search.twitter.com/search.json?q=wcf service", "http://themoneyconverter.com/rss-feed/JMD/rss.xml" };
            Channel channel = new Channel();
            var response = "";
            using (WebClient client = new WebClient())
            {
               response = client.DownloadString(new Uri(API[1]));

            }

            Console.WriteLine("{0}",response);
            Console.Read();

            // Create the client for parsing
               var parser = new RestClient();

            // Setup the baseUrl for the API
               parser.BaseUrl = "http://search.twitter.com";

               // Create a request
               var request = new RestRequest();

            // This a fix for
               request.AddHeader("Content-Type", "application/json");

            // Setup the resource or query to make the API call
               request.Resource = "search.json?q=wcf service";

               var responses = parser.Get<TSearch>(request);
               int x = 0;
               Console.WriteLine("{0}",responses.Data.ResultsPerPage);
               Console.Read();
        }
        public Package[] List()
        {
            var client = new RestClient(BaseUri)
            {
                Authenticator = new HttpBasicAuthenticator(Username, Password)
            };
            var request = new RestRequest($"/rest/api/1.0/projects/{ProjectKey}/repos", Method.GET);
            
            IRestResponse<StashProjectRepos> response;
            try
            {
                response = client.Get<StashProjectRepos>(request);
            }
            catch (Exception)
            {
                return new Package[0];
            }
            
            if (response == null || response.Data == null || response.Data.Values == null || !response.Data.Values.Any())
            {
                return new Package[0];
            }

            Packages = response.Data.Values.Select(repo => new Package
            {
                Name = repo.Slug,
                Url = SshInsteadOfHttp ? MakeSshUri(repo.Slug) : MakeHttpUri(repo.Slug)
            }).ToArray();

            return Packages;
        }
Example #12
0
        public static void GetList(string format)
        {
            var c = new RestClient(String.Format("{0}?format={1}", baseUrl, format));
            var resp = c.Get(CreateRequest(Method.GET, format));
            if (!Models.Any())
                WriteResult("GET LIST", resp);

            Models.Clear();

            if (string.IsNullOrEmpty(resp.Content))
            {
                return;
            }

            var ds = format == "json" ? new JsonDeserializer() : new XmlDeserializer() as IDeserializer;

            if (format != "json")
                resp.Content = resp.Content.Substring(1);
            var obj = ds.Deserialize<List<UserModel>>(resp);

            if (obj != null)
            {
                Models.AddRange(obj);
            }
        }
Example #13
0
        private List <Pharmacy> getPharmacies()
        {
            var client   = new RestSharp.RestClient("http://localhost:63518");
            var request  = new RestRequest("/api/pharmacymock");
            var response = client.Get <List <Pharmacy> >(request);

            return(response.Data);
        }
Example #14
0
 public FundraisingPageDonations GetFundraisingPageDonations()
 {
     RestClient client = new RestClient("https://api.justgiving.com/0f938d22/v1/fundraising/pages/justmovies/donations");
     var request = new RestRequest(Method.GET);
     request.AddHeader("Accept", "application/json");
     var result = client.Get<FundraisingPageDonations>(request);
     return result.Data;
 }
Example #15
0
        public static IRestResponse <List <MedicineName> > FormMedicineFromIsaRequest()
        {
            var client   = new RestSharp.RestClient("http://localhost:8082");
            var response = client.Get <List <MedicineName> >(new RestRequest("/medicineRequested"));

            response.Data.ForEach(medicine => Console.WriteLine(medicine.ToString()));
            return(response);
        }
        public void restaurant(RestIdArg arg)
        {
            var client   = new RestSharp.RestClient(string.Format("http://API/api/restaurants/{0}", arg.RestId));
            var response = client.Get <Restaurant>(new RestRequest());
            var rest     = response.Data;

            Console.WriteLine(rest.ToJson(true));
        }
        public void restaurants()
        {
            var client   = new RestSharp.RestClient("http://API/api/restaurants");
            var response = client.Get <List <Restaurant> >(new RestRequest());
            var rests    = response.Data;

            Console.WriteLine(rests.ToJson(true));
        }
Example #18
0
 private static IEnumerable<string> GetNoIntroSystems()
 {
     var client = new RestClient("http://datomatic.no-intro.org/?page=download&fun=xml");
     string website = client.Get(new RestRequest()).Content;
     var html = new HtmlDocument();
     html.LoadHtml(website);
     IEnumerable<string> systems = html.DocumentNode.QuerySelectorAll("select[name=sel_s] > option")
         .Select(node => node.Attributes["value"].Value)
         .Select(system => system.Replace(' ', '+')); //Get available select options in sel_s and replace spaces with +
     return systems;
 }
        public static IRestResponse <String> SendRequestForOrder()
        {
            var client   = new RestSharp.RestClient("http://localhost:8080");
            var request  = new RestRequest("/urgentOrder/forMedicament");
            var response = client.Get <String>(request);

            Console.WriteLine("Status: " + response.StatusCode.ToString());
            String result = response.Data;

            return(response);
        }
        // GET: Man
        public ViewResult List()
        {
            var client = new RestClient(SiteConn.ManWebApiServer);
            var getMan = new RestRequest("Man");

            getMan.AddHeader("Content-Type", "application / json");

            var response = client.Get<List<Manufacturer>>(getMan);
            
            return View(response.Data);
        }
Example #21
0
        public static IRestResponse <List <MedicamentDto> > SendGetRequestWithRestSharp()
        {
            var client   = new RestSharp.RestClient("http://localhost:8080");
            var request  = new RestRequest("/medicament/Aspirin");
            var response = client.Get <List <MedicamentDto> >(request);

            Console.WriteLine("Status: " + response.StatusCode.ToString());
            List <MedicamentDto> result = response.Data;

            result.ForEach(medicament => Console.WriteLine(medicament.ToString()));
            return(response);
        }
Example #22
0
        public IRestResponse Get(IRestRequest request)
        {
            RestSharp.RestClient client   = new RestSharp.RestClient();
            IRestResponse        response = client.Get(request);

            if (!response.IsSuccessful)
            {
                throw new RequestException(response.ErrorMessage + " Uri: " + response.ResponseUri, response);
            }

            return(response);
        }
        public static RestClient Build()
        {
            var client = new RestClient(GetHealthMonitorUrl());

            Wait.Until(
                Timeouts.Default,
                () => client.Get(new RestRequest("/api/monitors")).StatusCode,
                status => status == HttpStatusCode.OK,
                "Service is not functioning");

            return client;
        }
Example #24
0
 public DataModel(Uri baseUri)
 {
     var client = new RestClient
     {
         BaseUrl = baseUri
     };
     var speakersResponse = client.Get(new RestRequest("SpeakersData?type=json"));
     if (speakersResponse.StatusCode == HttpStatusCode.OK)
     {
         Speakers = JsonConvert.DeserializeObject<PublicSpeakerDataModel[]>(speakersResponse.Content);
     }
     var sessionsResponse = client.Get(new RestRequest("SessionsData?type=json"));
     if (sessionsResponse.StatusCode == HttpStatusCode.OK)
     {
         Sessions = JsonConvert.DeserializeObject<PublicSessionDataModel[]>(sessionsResponse.Content);
         foreach (var session in Sessions)
         {
             session.Speakers = session.Speakers.Select(speaker => Speakers.FirstOrDefault(s => s.Id == speaker.Id)).Where(speakerRef => speakerRef != null).ToArray();
         }
     }
 }
        public ExchangeRates ReadRatesForDate(DateTime date)
        {
            var lbClient = new RestClient(ConfigurationManager.AppSettings["lbBaseUri"]);
            var req = new RestRequest(String.Format(ConfigurationManager.AppSettings["lbCurrencyServiceUrl"], date.ToShortDateString()), Method.GET);
            var resp = lbClient.Get(req);

            var serializer = new XmlSerializer(typeof(ExchangeRates));
            var reader = XmlReader.Create(new StringReader(resp.Content));
            var rates = (ExchangeRates)serializer.Deserialize(reader);

            return rates;
        }
Example #26
0
        public string GetContent(string url)
        {
            // Perform a GET request to the given URL
            var client = new RestClient(url);
            var response = client.Get(new RestRequest());

            if ((int) response.StatusCode >= 400) {
                throw new Exception(response.StatusDescription);
            }

            return response.Content;
        }
Example #27
0
 public IRestResponse Get(RestRequest request)
 {
     Thread.Sleep(300);
     if (_random.Next(2) % 2 == 0)
     {
         return(_fakeRestClient.Get(request));
     }
     else
     {
         return(_restClient.Get(request));
     }
 }
Example #28
0
        /// <summary>
        /// Gets Json response for a rest request.
        /// </summary>
        /// <param name="path"></param>
        /// <param name="client"></param>
        /// <returns></returns>
        public static JObject GetResponse(String path, RestClient client)
        {
            IRestRequest restRequest = new RestRequest(path, Method.GET);
            IRestResponse response = client.Get(restRequest);

            if (response.ResponseStatus != ResponseStatus.Completed)
                throw response.ErrorException;
            if (response.StatusCode != HttpStatusCode.OK)
                throw new WebException(String.Format("Request: {0} \nStatusCode: {1}", response.ResponseUri, response.StatusCode));

            return JObject.Parse(response.Content);
        }
        public static RestClient Build()
        {
            var client = new RestClient(GetBaseUrl());

            Wait.Until(
                TimeSpan.FromSeconds(10),
                () => client.Get(new RestRequest("/api/monitors")).StatusCode,
                status => status == HttpStatusCode.OK,
                "Service is not functioning");

            return client;
        }
Example #30
0
		public void blank__apikeys_config_setting_should_disable_swashbuckle()
		{
			// Arrange
			RemoveApiKeys();
			var client = new RestClient(TestConstants.WEB_BASEURL);
			var restRequest = new RestRequest("/swagger/");

			// Act
			IRestResponse response = client.Get(restRequest);

			// Assert
			Assert.That(response.StatusCode, Is.EqualTo(HttpStatusCode.NotFound), response.Content);
		}
Example #31
0
 private static IEnumerable<string> GetRedumpSystems()
 {
  
     var client = new RestClient("http://redump.org/");
     string website = client.Get(new RestRequest()).Content;
     var html = new HtmlDocument();
     html.LoadHtml(website);
     IEnumerable<string> systems = html.DocumentNode.QuerySelectorAll("#submenu3 > a")
         .Select(node => node.Attributes["href"].Value)
         .Where(system => system.StartsWith("/datfile/"))
         .Where(system => !system.EndsWith("-bios/"));
     return systems;
 }
Example #32
0
        public void GetData()
        {
            var request = new RestRequest("api/values", DataFormat.Json);

            var response = client.Get(request);

            var dataItem = JsonConvert.DeserializeObject <DataItem>(response.Content);


            if (dataItem != null)
            {
                DataItems.Add(dataItem);
            }
        }
Example #33
0
        public SonarIssue[] GetIssues(string qualifier)
        {
            var uri = new Uri(_sonarUri, "/api/issues/search");

            var client = new RestClient();

            var restRequest = new RestRequest(uri.ToString());

            restRequest.AddParameter("componentRoots", qualifier);
            restRequest.AddParameter("resolved", "false");

            var data = client.Get<SonarIssueList>(restRequest);

            return data.Data.Issues.ToArray();
        }
Example #34
0
        public ActionResult History(string username)
        {
            var restClient = new RestClient(BaseUrl);
            var queryParams = new List<string> { "unverified=true" };
            var restRequest = new RestRequest(string.Format("/user/history/{0}?{1}", username, string.Join(",", queryParams)));

            var response = restClient.Get(restRequest);
            var serializerSettings = new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore };
            var userHistory = JsonConvert.DeserializeObject<History>(response.Content, serializerSettings);
            var matchData = userHistory.MatchData.FirstOrDefault();
            if (matchData == null)
                return null;
            matchData.MaxPayouts= GetBiggestPayouts(matchData, 5);
            matchData.MaxLosses = GetBiggestLosses(matchData, 5);
            matchData.Balances.RemoveAll(x => x.Balance <= 0);
            return Json(matchData, JsonRequestBehavior.AllowGet);
        }
        public ViewResult OneMan(int id)
        {
            var clientMan = new RestClient(SiteConn.ManWebApiServer);
            var getMan = new RestRequest($"Man/{id}");
            getMan.AddHeader("Content-Type", "application / json");
            var responseMan = clientMan.Get<Manufacturer>(getMan);

            var clientCpu = new RestClient(SiteConn.CpuWebApiServer);
            var getCpu = new RestRequest($"Cpu/ListMan/{id}");
            getCpu.AddHeader("Content-Type", "application / json");
            var responseCpu = clientCpu.Get<List<CPU>>(getCpu);

            

            return View(new ManExpansion
            {
                Man = responseMan.Data,
                Cpus = responseCpu.Data
            });
        }
        public List <CovidCountryModel> GetCasesForCountryByStatus(string country, string status)
        {
            var client  = new RestSharp.RestClient("https://api.covid19api.com");
            var request = new RestRequest($"live/country/{country}/status/{status}", DataFormat.Json);

            var response = client.Get <List <CovidCountryModel> >(request);

            if (response.IsSuccessful)
            {
                return(response.Data);
            }

            string errorMessage = $"" +
                                  "Status Code: {response.StatusCode}, " +
                                  "Status Description: {response.StatusDescription}, " +
                                  "Content: {response.Content}, " +
                                  "ErrorMessage: {response.ErrorMessage}";

            throw new Exception(errorMessage);
        }
        public void UpdatePlayerBios(IEnumerable<Player> players)
        {
            //http://m.mlb.com/lookup/json/named.player_teams.bam?player_id=488862
            var bioClient = new RestClient("http://m.mlb.com/lookup/json/named.player.bam");
            var teamsClient = new RestClient("http://m.mlb.com/lookup/json/named.player_teams.bam");

            foreach (var player in players)
            {
                // Basic player bio information
                var bioResult =
                    bioClient.Get<MlbPlayerBioResponse>(new RestRequest().AddParameter("player_id", player.MlbId));

                if (bioResult.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var bio = bioResult.Data.player.queryResults.row;

                    player.Active = bio.active_sw == "Y";
                    player.Bats = bio.bats;
                    player.BirthDate = bio.birth_date;
                    player.DisplayName = bio.name_first_last;
                    player.FirstName = bio.name_first;
                    player.HeightFeet = bio.height_feet ?? 0;
                    player.HeightInches = bio.height_inches ?? 0;
                    player.JerseyNumber = bio.jersey_number ?? 0;
                    player.LastName = bio.name_last;
                    player.PrimaryPosition = bio.primary_position_txt;
                    player.Weight = bio.weight ?? 0;
                }

                // Current team is not on the player bio.  We have to lookup a player's team history to figure that out.
                var teamsResult =
                    teamsClient.Get<MlbPlayerTeamResponse>(new RestRequest().AddParameter("player_id", player.MlbId));

                if (teamsResult.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    player.MlbTeamId = teamsResult.Data.player_teams.queryResults.row[0].team_id;
                    player.TeamName = teamsResult.Data.player_teams.queryResults.row[0].team;
                }
            }
        }
Example #38
0
        private void AuthReqChats_OnClick(object sender, RoutedEventArgs e)
        {
            var client = new RestClient("https://api.flowdock.com/");
            var request = new RestRequest("flows");
            request.AddParameter("access_token", Token ?? "");
            var response = client.Get(request).Content;

            try
            {

                var dict = JsonConvert.DeserializeObject<List<Flow>>(response);

                foreach (var flow in dict)
                {
                    ResultBox.Text += flow.Name + " " + flow.url + "\n";
                }
            }
            catch (Exception exception)
            {
               ResultBox.Text = response;
            }
        }
        public Endpoint()
        {
            _restClient = new RestClient("http://onecmdb.cloudapp.net:8080");

            var getRequest = new RestRequest();
            getRequest.Resource = "remote/http/auth";
            getRequest.AddQueryParameter("user", "admin");
            getRequest.AddQueryParameter("pwd", "123");

            var authResponse = _restClient.Get(getRequest);

            if (authResponse.StatusCode == HttpStatusCode.OK)
            {
                _authToken = authResponse.Content;
                System.Console.WriteLine("Login successful...");
            }
            else
            {
                System.Console.WriteLine("Login failed: ");
                System.Console.WriteLine(authResponse.StatusCode);
                System.Console.WriteLine(authResponse.Content);
            }
        }
Example #40
0
        public TFact NextFact <TFact>(string topic, string subscription, int waitSeconds = 1) where TFact : Fact, new()
        {
            if (waitSeconds <= 0)
            {
                throw new ArgumentOutOfRangeException("waitSeconds", "waitSeconds has to > 0");
            }

            RestRequest request = new RestRequest("/topics/{topic_name}/subscriptions/{subscription_id}/next", Method.GET);

            request.AddUrlSegment("topic_name", topic);
            request.AddUrlSegment("subscription_id", subscription);
            request.AddHeader("Patience", waitSeconds.ToString());

            IRestResponse <TFact> response = _client.Get <TFact>(request);

            if (response.ResponseStatus == ResponseStatus.Completed)
            {
                return((TFact)response.Data);
            }
            else
            {
                return(null);
            }
        }
Example #41
0
        private void btn_select_Click(object sender, EventArgs e)
        {
            var urls = tbx_urls.Lines.Where(m => Regex.IsMatch(m, @"^[a-z0-9\.\-]+$") && !m.Equals("")).ToArray();

            if (!urls.Any())
            {
                MessageBox.Show("请参考示例填写正确网址,每行一个", "提示");
                return;
            }
            label2.Text          = "网站查询数量:" + urls.Length;
            progressBar1.Value   = 0;
            progressBar1.Maximum = urls.Length;


            if (cancellationToken != null && !cancellationToken.IsCancellationRequested)
            {
                cancellationToken.Cancel();
                return;
            }

            cancellationToken = new CancellationTokenSource();
            cancellationToken.Token.Register(() =>
            {
                btn_export.Enabled = btn_clear.Enabled = tbx_urls.Enabled = cbx_device.Enabled = cb_source.Enabled = true;
                btn_select.Text    = "查询";
            });

            btn_export.Enabled = btn_clear.Enabled = tbx_urls.Enabled = cbx_device.Enabled = cb_source.Enabled = false;
            btn_select.Text    = "取消";

            var device = cbx_device.Text.ToLower();
            int source = cb_source.SelectedIndex;

            Task.Run(() =>
            {
                if (source == 0)
                {
                    var client             = new RestSharp.RestClient("https://baidurank.aizhan.com");
                    client.UserAgent       = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36";
                    client.CookieContainer = new System.Net.CookieContainer();

                    foreach (var url in urls)
                    {
                        if (cancellationToken.IsCancellationRequested)
                        {
                            break;
                        }
                        var request = new RestSharp.RestRequest();
                        if (device == "pc")
                        {
                            request.Resource = $"baidu/{url}/";
                        }
                        else
                        {
                            request.Resource = $"mobile/{url}/";
                        }
                        var resp = client.Get(request);
                        if (!resp.IsSuccessful)
                        {
                            resp = client.Get(request);
                        }
                        if (resp.IsSuccessful)
                        {
                            var htmldoc = new HtmlAgilityPack.HtmlDocument();
                            htmldoc.LoadHtml(resp.Content);
                            var nodes = htmldoc.DocumentNode.SelectNodes("//div[@class='baidurank-list']/table//tr/td[@class='title']/a/../..");
                            NewMethod(url, nodes);

                            var pages = htmldoc.DocumentNode.SelectNodes("//div[@class='baidurank-pager']/ul/a[@rel='nofollow']");
                            if (pages != null)
                            {
                                var pageurls = pages.Select(m => m.GetAttributeValue("href", ""));
                                pageurls.Where(m => m.Contains("http")).ToList().ForEach(m =>
                                {
                                    var request2      = new RestSharp.RestRequest();
                                    request2.Resource = m.Replace("https://baidurank.aizhan.com/", "");
                                    var resp2         = client.Get(request2);
                                    if (resp2.IsSuccessful)
                                    {
                                        var htmldoc2 = new HtmlAgilityPack.HtmlDocument();
                                        htmldoc2.LoadHtml(resp2.Content);
                                        var nodes2 = htmldoc2.DocumentNode.SelectNodes("//div[@class='baidurank-list']/table//tr/td[@class='title']/a/../..");
                                        NewMethod(url, nodes2);
                                    }
                                });
                            }
                        }
                        progressBar1.Invoke(new MethodInvoker(() =>
                        {
                            progressBar1.PerformStep();
                        }));
                    }
                }
                else if (source == 1)
                {
                    var client             = new RestSharp.RestClient("http://rank.chinaz.com");
                    client.UserAgent       = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36";
                    client.CookieContainer = new System.Net.CookieContainer();
                    foreach (var url in urls)
                    {
                        if (cancellationToken.IsCancellationRequested)
                        {
                            break;
                        }
                        var request = new RestSharp.RestRequest();
                        if (device == "pc")
                        {
                            request.Resource = $"{url}";
                        }
                        else
                        {
                            request.Resource = $"baidumobile/{url}/";
                        }
                        var resp = client.Get(request);
                        if (!resp.IsSuccessful)
                        {
                            resp = client.Get(request);
                        }
                        if (resp.IsSuccessful)
                        {
                            var htmldoc = new HtmlAgilityPack.HtmlDocument();
                            htmldoc.LoadHtml(resp.Content);
                            var nodes = htmldoc.DocumentNode.SelectNodes("//li[contains(@class,'ReLists')]");

                            NewMethod1(device, url, nodes);


                            var value = htmldoc.DocumentNode.SelectSingleNode("//i[@class='col-blue02']");
                            if (value != null && Regex.IsMatch(value.InnerText, @"\d+"))
                            {
                                var count = (int.Parse(value.InnerText) / 20) + 1;
                                if (count > 10)
                                {
                                    count = 10;
                                }
                                for (int i = 2; i <= count; i++)
                                {
                                    if (device == "pc")
                                    {
                                        request.Resource = $"{url}-0--0-{i}";
                                    }
                                    else
                                    {
                                        request.Resource = $"baidumobile/{url}-0--0-{i}";
                                    }
                                    var resp2 = client.Get(request);
                                    if (resp2.IsSuccessful)
                                    {
                                        var htmldoc2 = new HtmlAgilityPack.HtmlDocument();
                                        htmldoc2.LoadHtml(resp2.Content);
                                        var nodes2 = htmldoc2.DocumentNode.SelectNodes("//li[contains(@class,'ReLists')]");

                                        NewMethod1(device, url, nodes2);
                                    }
                                }
                            }
                        }


                        progressBar1.Invoke(new MethodInvoker(() =>
                        {
                            progressBar1.PerformStep();
                        }));
                    }
                }

                cbx_device.Invoke(new MethodInvoker(() =>
                {
                    btn_export.Enabled = btn_clear.Enabled = tbx_urls.Enabled = cbx_device.Enabled = cb_source.Enabled = true;
                    btn_select.Text    = "查询";
                    label3.Text        = "查询完成\r\n共有数量:" + lv_result.Items.Count;
                    cancellationToken.Cancel();
                }));
            }, cancellationToken.Token);
        }
Example #42
0
        private void btn_pub_Click(object sender, EventArgs e)
        {
            if (cancellationTokenSource != null && !cancellationTokenSource.IsCancellationRequested)
            {
                cancellationTokenSource.Cancel();
                return;
            }

            if (!File.Exists(_linkPath))
            {
                MessageBox.Show("外链不存在请新增外链", "提示");
                return;
            }
            var links = File.ReadAllLines(_linkPath);

            if (links.Length < 1)
            {
                MessageBox.Show("外链数量较少请新增外链", "提示");
                return;
            }

            btn_pub.Text            = "取消发布";
            tbx_urls.Enabled        = false;
            cancellationTokenSource = new CancellationTokenSource();
            cancellationTokenSource.Token.Register(() =>
            {
                tbx_urls.Enabled = true;
                btn_pub.Text     = "开始发布";
            });

            var urls = tbx_urls.Lines.Where(m => Regex.IsMatch(m, @"^[a-z0-9\.\-]+$")).ToArray();

            progressBar1.Value   = 0;
            progressBar1.Maximum = links.Length;
            progressBar2.Value   = 0;
            progressBar2.Maximum = urls.Length;
            lb_total.Text        = lb_current.Text = "0/0";

            Task.Run(() =>
            {
                try
                {
                    var client       = new RestSharp.RestClient();
                    client.UserAgent = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36";

                    Parallel.ForEach(urls, new ParallelOptions()
                    {
                        CancellationToken = cancellationTokenSource.Token, MaxDegreeOfParallelism = Environment.ProcessorCount - 1
                    }, (u, loopstae) =>
                    {
                        if (cancellationTokenSource.IsCancellationRequested)
                        {
                            loopstae.Stop();
                        }
                        ;
                        progressBar2.Invoke(new MethodInvoker(() =>
                        {
                            progressBar1.Value = 0;
                            progressBar2.PerformStep();
                            lb_total.Text = $"{progressBar2.Value}/{progressBar2.Maximum}";
                        }));

                        int a = 0;

                        Parallel.ForEach(links, new ParallelOptions()
                        {
                            CancellationToken = cancellationTokenSource.Token, MaxDegreeOfParallelism = Environment.ProcessorCount - 1
                        }, (m, s) =>
                        {
                            try
                            {
                                var request = new RestSharp.RestRequest();
                                if (cancellationTokenSource.IsCancellationRequested)
                                {
                                    s.Stop();
                                    return;
                                }
                                var status = "";
                                if (m.Contains("{url}") && (m.StartsWith("http://") || m.StartsWith("https://")))
                                {
                                    request.Timeout  = 5000;
                                    request.Resource = m.Replace("{url}", u);
                                    var resp         = client.Get(request);
                                    status           = resp.StatusCode.ToString();
                                }
                                a += 1;
                                progressBar1.Invoke(new MethodInvoker(() =>
                                {
                                    progressBar1.Value = a;
                                    lb_current.Text    = $"{a}/{progressBar1.Maximum}";
                                    // toolTip1.ToolTipTitle = $"{u} {status}";
                                    //toolTip1.Show(request.Resource, label8);
                                    label9.Text = $"{u} {status}\r\n{request.Resource}";
                                }));
                            }
                            catch (Exception ex)
                            {
                                Console.WriteLine(ex);
                            }
                        });
                        Task.Delay(2000);
                    });

                    tbx_urls.Invoke(new MethodInvoker(() =>
                    {
                        tbx_urls.Enabled = true;
                        btn_pub.Text     = "开始发布";
                        label9.Text      = "当前任务完成";
                    }));
                }
                catch (Exception)
                {
                }
            }, cancellationTokenSource.Token);
        }
Example #43
0
        /// <summary>
        ///
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="resource"></param>
        /// <returns></returns>
        public IRestResponse <T> SendGetRequest <T>(string resource)
        {
            var req = new RestRequest(resource);

            return(_client.Get <T>(req));
        }
    private void DoRequest(string requestUrl) {
        RestClient client = new RestClient(requestUrl);
        RestRequest request = new RestRequest("", Method.GET);
        request.AddHeader("test", "test");

        Debug.Log("Testing url: " + requestUrl);
        IRestResponse response = client.Get(request);
        ValidateResponse(requestUrl, response, false);
        
        client.GetAsync(request, OnResponse);
        
    }
Example #45
-1
        public string GetHtml(string url)
        {
            string html = "";

            RestClient client = new RestClient(url);
            RestRequest request = new RestRequest();
            IRestResponse response = client.Get(request);

            html = response.Content;

            return html;
        }