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)); }
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); }