示例#1
0
        public async Task <IActionResult> Index(UrlModel urlModel)
        {
            if (urlModel.ProvidedUrl == null)
            {
                return(View(_viewModel));
            }

            this._apiFactory            = new MercuryApiFactory(ApiUris.MercuryApiUri + urlModel.ProvidedUrl, ContentTypes.Json, ApiNames.MercuryApiName, AuthorizationTypes.xKey);
            this._httpRequestController = new HttpRequestController(_apiFactory.GetApi());
            this._httpRequestController.AddContentTypeHeader();
            this._httpRequestController.AddAutorizationHeader(_parser.GetObject(ApiNames.MercuryApiName));

            var result = await _httpRequestController.Send();

            var response = JsonConvert.DeserializeObject <ResponseModel>(result);

            if (response.content == null)
            {
                TempData["Error"] = "Site is not available or doesn't exist";
                return(View(_viewModel));
            }
            if (_viewModel.ResponseModels.Count == 5)
            {
                _viewModel.ResponseModels.RemoveAt(0);
            }
            _viewModel.ResponseModels.Insert(0, response);

            HtmlCounter counter = new HtmlCounter(_viewModel.ResponseModels.Last().content);

            _viewModel.ResponseModels.Last().TagsOccurrences = counter.CountOccurrence();


            return(View(_viewModel));
        }
        static async void ShowOutputs(Project project)
        {
            HttpRequestController controller = new HttpRequestController();



            foreach (var urimodels in project.RequestUris)
            {
                var message = await controller.ExecuteRequest(project.ProjectConfiguration.BaseUrl, urimodels, project.GlobalHeaders);

                Console.ForegroundColor = ConsoleColor.White;
                Console.Write(urimodels.RequestUri);
                if (message.IsSuccessStatusCode)
                {
                    Console.ForegroundColor = ConsoleColor.Green;
                    Console.WriteLine("\tPassed ");
                }
                else
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("\tFailed ");
                }



                if (urimodels.HasToken)
                {
                    string data = await message.Content.ReadAsStringAsync();

                    JObject jObject = JObject.Parse(data);


                    List <JToken> expandedNodes = jObject.DescendantsAndSelf().ToList();

                    string token = "";

                    foreach (var node in expandedNodes)
                    {
                        token = node.SelectToken(urimodels.TokenName)?.ToString();
                        if (!string.IsNullOrEmpty(token))
                        {
                            break;
                        }
                    }

                    if (urimodels.IsAuthToken)
                    {
                        project.AddGlobalHeader("Authorization", "bearer " + token);
                        Console.ForegroundColor = ConsoleColor.Yellow;
                        Console.WriteLine("JWT Token Added");
                    }
                    else
                    {
                        project.AddGlobalHeader(urimodels.TokenName, token);
                    }
                }
            }
        }
示例#3
0
 private void Start()
 {
     httpRequestController = FindObjectOfType <HttpRequestController>();
     nonUserUIController   = FindObjectOfType <NonUserUIController>();
 }