コード例 #1
0
        public async Task <ApiResponse <TResponse> > PostWithResponseCode <TResponse>(IPostApiRequest request)
        {
            var stringContent = request.Data != null ? new StringContent(JsonConvert.SerializeObject(request.Data), Encoding.UTF8, "application/json") : null;

            var requestMessage = new HttpRequestMessage(HttpMethod.Post, request.PostUrl);

            requestMessage.AddVersion(request.Version);
            requestMessage.Content = stringContent;
            await AddAuthenticationHeader(requestMessage);

            var response = await HttpClient.SendAsync(requestMessage).ConfigureAwait(false);

            var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

            var errorContent = "";
            var responseBody = (TResponse) default;

            if (IsNot200RangeResponseCode(response.StatusCode))
            {
                errorContent = json;
                HandleException(response, json);
            }
            else
            {
                responseBody = JsonConvert.DeserializeObject <TResponse>(json);
            }

            var postWithResponseCode = new ApiResponse <TResponse>(responseBody, response.StatusCode, errorContent);

            return(postWithResponseCode);
        }
コード例 #2
0
        public async Task Delete(IDeleteApiRequest request)
        {
            var requestMessage = new HttpRequestMessage(HttpMethod.Delete, request.DeleteUrl);

            requestMessage.AddVersion(request.Version);
            await AddAuthenticationHeader(requestMessage);

            var response = await HttpClient.SendAsync(requestMessage).ConfigureAwait(false);

            await response.EnsureSuccessStatusCodeIncludeContentInException();
        }
コード例 #3
0
        public async Task <HttpStatusCode> GetResponseCode(IGetApiRequest request)
        {
            var requestMessage = new HttpRequestMessage(HttpMethod.Get, request.GetUrl);

            requestMessage.AddVersion(request.Version);
            await AddAuthenticationHeader(requestMessage);

            var response = await HttpClient.SendAsync(requestMessage).ConfigureAwait(false);

            return(response.StatusCode);
        }
コード例 #4
0
        public async Task Put <TData>(IPutApiRequest <TData> request)
        {
            var stringContent  = request.Data != null ? new StringContent(JsonConvert.SerializeObject(request.Data), Encoding.UTF8, "application/json") : null;
            var requestMessage = new HttpRequestMessage(HttpMethod.Put, request.PutUrl);

            requestMessage.AddVersion(request.Version);
            requestMessage.Content = stringContent;
            await AddAuthenticationHeader(requestMessage);

            var response = await HttpClient.SendAsync(requestMessage).ConfigureAwait(false);

            await response.EnsureSuccessStatusCodeIncludeContentInException();
        }
コード例 #5
0
        public async Task <ApiResponse <string> > PatchWithResponseCode <TData>(IPatchApiRequest <TData> request)
        {
            var stringContent  = request.Data != null ? new StringContent(JsonConvert.SerializeObject(request.Data), Encoding.UTF8, "application/json") : null;
            var requestMessage = new HttpRequestMessage(HttpMethod.Patch, request.PatchUrl);

            requestMessage.AddVersion(request.Version);
            requestMessage.Content = stringContent;
            await AddAuthenticationHeader(requestMessage);

            var response = await HttpClient.SendAsync(requestMessage).ConfigureAwait(false);

            var responseContent = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

            return(new ApiResponse <string>(responseContent, response.StatusCode, "")); //TODO - Error content should be correctly set
        }
コード例 #6
0
        public async Task <PagedResponse <TResponse> > GetPaged <TResponse>(IGetPagedApiRequest request)
        {
            var requestMessage = new HttpRequestMessage(HttpMethod.Get, request.GetPagedUrl);

            requestMessage.AddVersion(request.Version);
            await AddAuthenticationHeader(requestMessage);

            var response = await HttpClient.SendAsync(requestMessage).ConfigureAwait(false);

            if (!response.IsSuccessStatusCode)
            {
                return(new PagedResponse <TResponse>());
            }

            var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false);

            return(JsonConvert.DeserializeObject <PagedResponse <TResponse> >(json));
        }