コード例 #1
0
        public static async Task <T> GetJsonStreamAsync(Uri Url, string authorizationScheme, string authorizationToken, CancellationToken cancellationToken, TimeSpan httpTimeout)
        {
            var request = new HttpRequestMessage(HttpMethod.Get, Url);

            using (var client = new HttpClient {
                Timeout = httpTimeout
            })
            {
                client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authorizationScheme, authorizationToken);

                using (var response = await client.SendAsync(request, HttpCompletionOption.ResponseHeadersRead, cancellationToken))
                {
                    var stream = await response.Content.ReadAsStreamAsync();

                    if (response.IsSuccessStatusCode)
                    {
                        return(ClientHelpers.DeserializeJsonFromStream <T>(stream));
                    }

                    var content = await ClientHelpers.StreamToStringAsync(stream);

                    throw new Exception($"{ (int)response.StatusCode } { content}");
                }
            }
        }
コード例 #2
0
        public static void PostJsonStream(T content, Uri Url, string authorizationScheme, string authorizationToken)
        {
            var client      = new HttpClient();
            var request     = new HttpRequestMessage(HttpMethod.Post, Url);
            var httpContent = ClientHelpers.CreateHttpJsonContent <T>(content);

            request.Content = httpContent;

            client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authorizationScheme, authorizationToken);

            client.SendAsync(request);
        }
コード例 #3
0
        public static async Task PostJsonStreamAsync(T content, Uri Url, string authorizationScheme, string authorizationToken, CancellationToken cancellationToken)
        {
            var request = new HttpRequestMessage(HttpMethod.Post, Url);

            using (var client = new HttpClient())
                using (var httpContent = ClientHelpers.CreateHttpJsonContent <T>(content))
                {
                    request.Content = httpContent;

                    client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authorizationScheme, authorizationToken);

                    using (var response = await client
                                          .SendAsync(request, HttpCompletionOption.ResponseHeadersRead, cancellationToken)
                                          .ConfigureAwait(false))
                    {
                        response.EnsureSuccessStatusCode();
                    }
                }
        }