Esempio n. 1
0
        public async Task <APIEndpointExecuterResult> Run(string requestJson, bool includeDateHeader = true)
        {
            SendHttpRequestResult result = await APIUtilities.SendRequestAsync(
                _Uri,
                _HttpVerb,
                requestJson,
                includeDateHeader);

            APIEndpointExecuterResult returnVal = new APIEndpointExecuterResult();

            returnVal.Request         = result.request;
            returnVal.Response        = result.response;
            returnVal.ResponseContent = await result.response.Content.ReadAsStringAsync();

            returnVal.ResponseReceivedOnUtc = DateTime.UtcNow;

            return(returnVal);
        }
        public static async Task <SendHttpRequestResult> SendRequestAsync(string resourceEndpoint, HttpMethod httpVerb, String requestJson, bool includeDateInHeader)
        {
            // Generate HttpClient
            HttpClient client = client = new HttpClient()
            {
                BaseAddress = new Uri(ClientState.BaseURI)
            };

            // Generate HttpRequestMessage
            HttpRequestMessage httpRequest = new HttpRequestMessage(httpVerb, resourceEndpoint);

            try
            {
                // If post or get request, serialize Data Transfer Object
                if (httpVerb.Equals(HttpMethod.Post) || httpVerb.Equals(HttpMethod.Put))
                {
                    httpRequest.Content = new StringContent(requestJson, Encoding.UTF8);
                    httpRequest.Content.Headers.ContentType = new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");
                }

                // Build Auth Header
                APIUtilities.BuildAuthHeader(ref httpRequest, includeDateInHeader);

                HttpResponseMessage httpResponse = await client.SendAsync(httpRequest);

                return(new SendHttpRequestResult()
                {
                    request = httpRequest,
                    response = httpResponse
                });
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                httpRequest.Dispose();
                client.Dispose();
            }
        }