Beispiel #1
0
        public async Task <HttpResponseMessage> GetAsync(string requestUri, HttpRequestParameters parameters = null, TimeSpan?timeout = null)
        {
            var request = new HttpRequestMessage
            {
                Method     = HttpMethod.Get,
                RequestUri = new Uri(_httpRequestCriteria.BaseUri + requestUri)
            };

            //Check for Filter Parameters
            if (parameters == null)
            {
                return(await SendAsync(request));
            }
            request.AddQueryString(parameters);

            //Check for Accept-Language Header for Localization
            if (string.IsNullOrEmpty(parameters.Headers["Accept-Language"]))
            {
                return(await SendAsync(request));
            }
            var acceptLanguage = parameters.Headers["Accept-Language"].Split(',').FirstOrDefault();

            request.Headers.AcceptLanguage.Add(new StringWithQualityHeaderValue(acceptLanguage));

            return(await SendAsync(request, timeout));
        }
Beispiel #2
0
        public static HttpRequestMessage AddQueryString(this HttpRequestMessage request, HttpRequestParameters parameters)
        {
            var uriBuilder = new UriBuilder(request.RequestUri);
            var query      = HttpUtility.ParseQueryString(uriBuilder.Query);

            if (!string.IsNullOrEmpty(parameters.Scope))
            {
                query["scope"] = parameters.Scope;
            }
            if (!string.IsNullOrEmpty(parameters.Role))
            {
                query["role"] = parameters.Role;
            }
            if (!string.IsNullOrEmpty(parameters.Sort))
            {
                query["sort"] = parameters.Sort;
            }
            if (parameters.Limit != 0)
            {
                query["limit"] = parameters.Limit.ToString();
            }
            if (parameters.Offset != 0)
            {
                query["offset"] = parameters.Offset.ToString();
            }
            uriBuilder.Query = query.ToString();
            //request.RequestUri = uriBuilder.Uri;
            request.RequestUri = new Uri(uriBuilder.ToString());
            return(request);
        }