コード例 #1
0
        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);
            }
        }
コード例 #2
0
        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);
        }