Exemple #1
0
        protected HttpRequestMessage CreateRequest(RequestWrapper restRequest)
        {
            //Request Uri
            var partialRequestUri = new Uri(restRequest.RelativePath);

            var completeRequestUri = AppendQueryParametersToUri(restRequest.QueryParameters, partialRequestUri);

            //REST HTTP Method and instantiation
            var httpRequestMessage = new HttpRequestMessage(restRequest.HttpMethod, completeRequestUri);

            if (restRequest.AuthenticationHeaderValue != null)
            {
                httpRequestMessage.Headers.Authorization = restRequest.AuthenticationHeaderValue;
            }

            //Default Headers
            foreach (var header in DefaultHeaders)
            {
                httpRequestMessage.Headers.Add(header.Key, header.Value);
            }

            //Request Specific Headers
            foreach (var kvpHeader in restRequest.RequestSpecificHeaders)
            {
                httpRequestMessage.Headers.Add(kvpHeader.Key, kvpHeader.Value);
            }

            //Adding HttpContent if present
            if (restRequest.HttpContent != null)
            {
                httpRequestMessage.Content = restRequest.HttpContent;
            }

            return(httpRequestMessage);
        }
Exemple #2
0
        public virtual async Task <ResponseWrapper> SendRestRequest(RequestWrapper request)
        {
            var response = new ResponseWrapper();

            try
            {
                var httpRequestMessage = CreateRequest(request);

                var httpResponse = httpClient.SendAsync(httpRequestMessage, cancellationTokenSource.Token).Result;

                response.IsSuccess  = httpResponse.IsSuccessStatusCode;
                response.Reason     = httpResponse.ReasonPhrase;
                response.StatusCode = httpResponse.StatusCode;

                var responseContentAString = await httpResponse.Content.ReadAsStringAsync();

                response.Content = JsonConvert.DeserializeObject <dynamic>(responseContentAString);
            }
            catch (Exception e)
            {
                response            = new ResponseWrapper();
                response.Reason     = e.Message;
                response.StatusCode = HttpStatusCode.BadRequest;
            }

            return(response);
        }
Exemple #3
0
        public TransactionResult <ResponseWrapper> Get(RequestWrapper request)
        {
            request.RelativePath = untappdApiBaseUrl + request.RelativePath;

            request.QueryParameters.Add(new KeyValuePair <string, string>("client_id", untappdClientId));
            request.QueryParameters.Add(new KeyValuePair <string, string>("client_secret", untappdClientSecret));

            var response = base.SendRestRequest(request).Result;

            return(new TransactionResult <ResponseWrapper>
            {
                Data = response, Success = response.IsSuccess, Details = response.Reason
            });
        }