示例#1
0
        private void PrintRequest(WebApiSpecsRequest webApiSpecsRequest)
        {
            var headers  = GetDisplayHeaders(webApiSpecsRequest.Headers);
            var bodyText = GetDisplayContent(webApiSpecsRequest);
            var text     = $"REQUEST [WebApiSpecsRequest]\nMETHOD: {webApiSpecsRequest.RequestType}\nURL: {webApiSpecsRequest.Url}\nHEADERS:\n{headers}\nBODY:\n{bodyText}\n";

            Print(text);
        }
示例#2
0
        private static string GetDisplayContent(WebApiSpecsRequest webApiSpecsRequest)
        {
            var content = MapContent(webApiSpecsRequest);

            if (content == null)
            {
                return(NULL_MSG_ITEM);
            }

            return(content == string.Empty ? EMPTY_MSG_ITEM : content);
        }
示例#3
0
        private async Task SendHttpRequestAsync(WebApiSpecsRequest request)
        {
            PrintRequest(request);
            var client = new HttpClientEx();
            var httpClientExRequest = MapRequest(request);

            HttpResponse = await client.SendRequest(httpClientExRequest);

            _requestSent = true;
            ExtractContentFromHttpResponse();
            await PrintResponseAsync(HttpResponse);
        }
示例#4
0
        private void ValidateRequest(WebApiSpecsRequest request)
        {
            if (!request.RequestType.HasValue)
            {
                throw new InvalidOperationException("Request type must have a value");
            }

            if (string.IsNullOrWhiteSpace(request.Url))
            {
                Assert.Fail("Path must be specified");
            }
        }
示例#5
0
        private static string MapContent(WebApiSpecsRequest webApiSpecsRequest)
        {
            switch (webApiSpecsRequest.ContentType)
            {
            case WebApiSpecsRequestContentType.StringContent:
                return(webApiSpecsRequest.StringContent);

            case WebApiSpecsRequestContentType.JObjectContent:
                return(webApiSpecsRequest.JObjectContent?.ToString());

            default:
                throw new InvalidOperationException($"Unexpected content type {webApiSpecsRequest.ContentType}");
            }
        }
示例#6
0
        private static HttpClientExRequest MapRequest(WebApiSpecsRequest webApiSpecsRequest)
        {
            if (webApiSpecsRequest == null)
            {
                throw new ArgumentNullException(nameof(webApiSpecsRequest));
            }

            return(new HttpClientExRequest
            {
                Content = MapContent(webApiSpecsRequest),
                Headers = webApiSpecsRequest.Headers,
                RequestType = webApiSpecsRequest.RequestType,
                Url = webApiSpecsRequest.Url
            });
        }