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); }
// 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>(); } }
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; }
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); } }
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); }
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; }
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)); }
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); }
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); }
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; }
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; }
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; }
public IRestResponse Get(RestRequest request) { Thread.Sleep(300); if (_random.Next(2) % 2 == 0) { return(_fakeRestClient.Get(request)); } else { return(_restClient.Get(request)); } }
/// <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; }
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); }
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; }
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); } }
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(); }
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; } } }
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); } }
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); } }
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); }
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); }
/// <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); }
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; }