Ejemplo n.º 1
0
        public static string GetUrl(PlainHttpRequest plainHttpRequest)
        {
            if (plainHttpRequest == null)
            {
                throw new ArgumentNullException(nameof(plainHttpRequest));
            }

            var urlBuilder = new UriBuilder
            {
                Scheme = plainHttpRequest.Scheme,
                Host   = plainHttpRequest.Host,
                Port   = plainHttpRequest.Port,
                Path   = plainHttpRequest.Path,
                Query  = plainHttpRequest.QueryString
            };

            return(urlBuilder.Uri.ToString());
        }
Ejemplo n.º 2
0
        public void When_get_url_Then_returns_url()
        {
            //Arrange
            var plainHttpRequest = new PlainHttpRequest
            {
                Method      = "GET",
                Scheme      = "http",
                Host        = "host",
                Port        = 443,
                Path        = "path",
                QueryString = "?userid=42"
            };

            //Act
            string result = PlainHttpRequestHelper.GetUrl(plainHttpRequest);

            //Assert
            Assert.That(result, Is.EqualTo("http://host:443/path?userid=42"));
        }
Ejemplo n.º 3
0
        private async Task <HttpResponseMessage> SendHttpRequest(PlainHttpRequest plainHttpRequest)
        {
            var requestUrl = PlainHttpRequestHelper.GetUrl(plainHttpRequest);

            var response = await this.httpClientWrapper.SendRequest(
                requestUrl,
                this.httpContext.Request.Method,
                this.httpContext.Request.Body,
                plainHttpRequest.Headers,
                plainHttpRequest.TimeoutInSeconds);

            this.logger.LogDebug(
                "{method} request has been send to URL {requestUrl}. Response status code {statusCode}",
                this.httpContext.Request.Method.ToUpper(),
                requestUrl,
                response.StatusCode);

            return(response);
        }
        public PlainHttpRequest Create(
            string method,
            string path,
            string queryString,
            IHeaderDictionary headers,
            ushort?timeoutInSeconds,
            PlainRouteConfiguration routeConfiguration)
        {
            this.ValidateParameters(method, headers, routeConfiguration);

            var address = routeConfiguration.Target.Addresses.First();

            var httpPath = this.httpRequestPathProvider.Get(
                path,
                routeConfiguration.Source.PathTemplate,
                routeConfiguration.Target.PathTemplate);

            var request = new PlainHttpRequest
            {
                Method      = method,
                Scheme      = routeConfiguration.Target.Scheme,
                Host        = address.Host,
                Port        = address.Port,
                Path        = httpPath,
                QueryString = queryString ?? string.Empty,
                Headers     = headers,
                // ReSharper disable once PossibleInvalidOperationException
                TimeoutInSeconds = timeoutInSeconds.Value
            };

            this.logger.LogDebug(
                "{method} request has been created for path {path} and query string {queryString}",
                request.Method.ToUpper(),
                request.Path,
                request.QueryString);

            return(request);
        }
Ejemplo n.º 5
0
 private bool IsRequestValid(PlainHttpRequest plainHttpRequest)
 {
     return(plainHttpRequest == null);
 }