public async Task <string> PostAsync(string endpoint, AdvegoRequest body) { var nvc = new List <KeyValuePair <string, string> > { new KeyValuePair <string, string>("id_lang", body.Id_lang.ToString()), new KeyValuePair <string, string>("job_text", body.Job_text) }; var req = new HttpRequestMessage(HttpMethod.Post, endpoint) { Content = new FormUrlEncodedContent(nvc) }; var response = await _httpClient.SendAsync(req); if (response.StatusCode == System.Net.HttpStatusCode.OK) { var responseString = await response.Content.ReadAsStringAsync(); return(responseString); } else { throw GenerateException(response); } }
public async Task <AdvegoResponse> AnalyzeText(string text) { var advegoRequest = new AdvegoRequest { Job_text = text, Id_lang = 0 }; var htmlPage = await _restClient.PostAsync(_advegoSettings.Endpoint, advegoRequest); // From String var htmlDoc = new HtmlDocument(); htmlDoc.LoadHtml(htmlPage); var response = new AdvegoResponse { SemanticKernel = new Dictionary <string, SemanticValues>(), TextStatistic = new Dictionary <string, string>() }; var seoTables = htmlDoc.DocumentNode.SelectNodes("//table[@class='seo_table']"); var textStatisticTable = seoTables[0]; foreach (var tr in textStatisticTable.SelectNodes("tr")) { var tds = tr.SelectNodes("td"); if (tds != null && tds.Count != 0) { response.TextStatistic.Add(tds[0].InnerText.Trim(), tds[1].InnerText.Trim()); } } var semanticKernelTable = seoTables[1]; foreach (var tr in semanticKernelTable.SelectNodes("tr")) { var tds = tr.SelectNodes("td"); if (tds != null && tds.Count != 0) { response.SemanticKernel.Add(tds[0].InnerText.Trim(), new SemanticValues { Count = tds[1].InnerText.Trim(), Frequency = tds[2].InnerText.Trim() }); } } return(response); }