Esempio n. 1
0
        private async Task PostPosterWithoutStream()
        {
            // generate a movie poster of 500KB
            var random         = new Random();
            var generatedBytes = new byte[524288];

            random.NextBytes(generatedBytes);

            var posterForCreation = new PosterForCreation()
            {
                Name  = "A new poster for The Big Lebowski",
                Bytes = generatedBytes
            };

            var serializedPosterForCreation = JsonConvert.SerializeObject(posterForCreation);

            var request = new HttpRequestMessage(HttpMethod.Post, $"api/movies/d8663e5e-7494-4f81-8739-6e0de1bea7ee/posters");

            request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
            request.Content = new StringContent(serializedPosterForCreation);
            request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

            var response = await _httpClient.SendAsync(request);

            response.EnsureSuccessStatusCode();
            var content = await response.Content.ReadAsStringAsync();

            var createdMovie = JsonConvert.DeserializeObject <Poster>(content);
        }
Esempio n. 2
0
        private async Task PostPosterWithStream()
        {
            // generate a movie poster of 500KB
            var random         = new Random();
            var generatedBytes = new byte[524288];

            random.NextBytes(generatedBytes);

            var posterForCreation = new PosterForCreation()
            {
                Name  = "A new poster for The Big Lebowski",
                Bytes = generatedBytes
            };

            var memoryContentStream = new MemoryStream();

            memoryContentStream.SerializeToJsonAndWrite(posterForCreation,
                                                        new UTF8Encoding(), 1024, true);

            //using (var streamWriter = new StreamWriter(memoryContentStream,
            //    new UTF8Encoding(), 1024, true))
            //{
            //    using (var jsonTextWriter = new JsonTextWriter(streamWriter))
            //    {
            //        var jsonSerializer = new JsonSerializer();
            //        jsonSerializer.Serialize(jsonTextWriter, posterForCreation);
            //        jsonTextWriter.Flush();
            //    }
            //}

            memoryContentStream.Seek(0, SeekOrigin.Begin);
            using (var request = new HttpRequestMessage(
                       HttpMethod.Post,
                       $"api/movies/d8663e5e-7494-4f81-8739-6e0de1bea7ee/posters"))
            {
                request.Headers.Accept.Add(
                    new MediaTypeWithQualityHeaderValue("application/json"));

                using (var streamContent = new StreamContent(memoryContentStream))
                {
                    request.Content = streamContent;
                    request.Content.Headers.ContentType =
                        new MediaTypeHeaderValue("application/json");

                    var response = await _httpClient.SendAsync(request);

                    response.EnsureSuccessStatusCode();

                    var createdContent = await response.Content.ReadAsStringAsync();

                    var createdPoster = JsonConvert.DeserializeObject <Poster>(createdContent);
                }
            }
        }
Esempio n. 3
0
        private async Task PostAndReadPosterWithStream()
        {
            // generate a movie poster of 500KB
            var random         = new Random();
            var generatedBytes = new byte[524288];

            random.NextBytes(generatedBytes);

            var posterForCreation = new PosterForCreation()
            {
                Name  = "A new poster for the Big Lebowski",
                Bytes = generatedBytes
            };

            var memoryContentStream = new MemoryStream();

            memoryContentStream.SerializeToJsonAndWrite(posterForCreation,
                                                        new UTF8Encoding(), 1024, true);

            // memorystream set to 0, as its the starting position of the stream
            memoryContentStream.Seek(0, SeekOrigin.Begin);

            // since streams needs to be disposed off, scope request via using
            using (var request = new HttpRequestMessage(
                       HttpMethod.Post,
                       $"api/movies/d8663e5e-7494-4f81-8739-6e0de1bea7ee/posters"))
            {
                request.Headers.Accept.Add(
                    new MediaTypeWithQualityHeaderValue("application/json"));

                using (var streamContent = new StreamContent(memoryContentStream))
                {
                    request.Content = streamContent;
                    request.Content.Headers.ContentType =
                        new MediaTypeHeaderValue("application/json");

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

                        var poster = stream.ReadAndDeserializeFromJson <Poster>();
                    }
                }
            }
        }
Esempio n. 4
0
        private async Task PostAndReadPosterWithStream()
        {
            //generate a movie poster
            var random         = new Random();
            var generatedBytes = new byte[23452];

            random.NextBytes(generatedBytes);

            var posterForCreation = new PosterForCreation()
            {
                Name  = "A New POster",
                Bytes = generatedBytes
            };

            //JsonConvert.SerializeObject(posterForCreation); Avoiding this line with streams
            var memoryContentStream = new MemoryStream();

            memoryContentStream.SerializeToJsonAndWrite(posterForCreation);

            memoryContentStream.Seek(0, SeekOrigin.Begin);

            using (var request = new HttpRequestMessage(HttpMethod.Post,
                                                        $"api/movies/d8663e5e-7494-4f81-8739-6e0de1bea7ee/posters"))
            {
                request.Headers.Accept.Add(
                    new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("application/json"));

                using (var streamContent = new StreamContent(memoryContentStream))
                {
                    request.Content = streamContent;
                    request.Content.Headers.ContentType =
                        new System.Net.Http.Headers.MediaTypeHeaderValue("application/json");

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

                        var poster = stream.ReadAndDeserializeFromJson <Poster>();
                    }
                }
            }
        }
Esempio n. 5
0
        public async Task PostAndReadPosterWithStream()
        {
            var random        = new Random();
            var generateBytes = new byte[524288];

            random.NextBytes(generateBytes);

            var posterForCreation = new PosterForCreation
            {
                Name  = "A new poster for The Big Lebowski",
                Bytes = generateBytes
            };

            var memoryContentStream = new MemoryStream();

            memoryContentStream.SerializeToJsonAndWrite(posterForCreation, new UTF8Encoding(), 1024, true);

            memoryContentStream.Seek(0, SeekOrigin.Begin);
            using (var request = new HttpRequestMessage(HttpMethod.Post, $"api/movies/da2fd609-d754-4feb-8acd-c4f9ff13ba96/posters"))
            {
                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

                using (var streamContent = new StreamContent(memoryContentStream))
                {
                    request.Content = streamContent;
                    request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                    using (var response = await _httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead))
                    {
                        response.EnsureSuccessStatusCode();

                        var stream = await response.Content.ReadAsStreamAsync();

                        var poster = stream.ReadAndDeserializeFromJson <Poster>();
                    }
                }
            }
        }
Esempio n. 6
0
        private async Task PostPosterWithStreamAndReadWithStream()
        {
            // generate a movie poster of 500KB
            var random         = new Random();
            var generatedBytes = new byte[524288];

            random.NextBytes(generatedBytes);

            var posterForCreation = new PosterForCreation()
            {
                Name  = "A new poster for The Big Lebowski",
                Bytes = generatedBytes
            };

            var ms = new MemoryStream();

            ms.SerializeToJsonAndWrite(posterForCreation);

            ms.Seek(0, SeekOrigin.Begin);

            using (var request = new HttpRequestMessage(HttpMethod.Post, $"api/movies/d8663e5e-7494-4f81-8739-6e0de1bea7ee/posters"))
            {
                request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
                using (var streamContent = new StreamContent(ms))
                {
                    request.Content = streamContent;
                    request.Content.Headers.ContentType = new MediaTypeHeaderValue("application/json");

                    using (var response = await _httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead))
                    {
                        response.EnsureSuccessStatusCode();
                        var createdContentStream = await response.Content.ReadAsStreamAsync();

                        var createdPoster = createdContentStream.ReadAndDeserializeFromJson <Poster>();
                    }
                }
            }
        }
        private async Task PostAndReadPosterWithStreams()
        {
            // generate a movie poster of 500KB
            var random         = new Random();
            var generatedBytes = new byte[524288];

            random.NextBytes(generatedBytes);

            var posterForCreation = new PosterForCreation()
            {
                Name  = "A new poster for The Big Lebowski",
                Bytes = generatedBytes
            };

            var memoryContentStream = new MemoryStream();

            using (var streamWriter = new StreamWriter(memoryContentStream,
                                                       new UTF8Encoding(), 1024, true))
            {
                using (var jsonTextWriter = new JsonTextWriter(streamWriter))
                {
                    var jsonSerializer = new JsonSerializer();
                    jsonSerializer.Serialize(jsonTextWriter, posterForCreation);
                    jsonTextWriter.Flush();
                }
            }

            memoryContentStream.Seek(0, SeekOrigin.Begin);

            using (var request = new HttpRequestMessage(
                       HttpMethod.Post,
                       $"api/movies/d8663e5e-7494-4f81-8739-6e0de1bea7ee/posters"))
            {
                request.Headers.Accept.Add(
                    new MediaTypeWithQualityHeaderValue("application/json"));

                using (var streamContent = new StreamContent(memoryContentStream))
                {
                    request.Content = streamContent;
                    request.Content.Headers.ContentType =
                        new MediaTypeHeaderValue("application/json");

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

                        using (var streamReader = new StreamReader(stream))
                        {
                            using (var jsonTextReader = new JsonTextReader(streamReader))
                            {
                                var jsonSerializer = new JsonSerializer();
                                var poster         = jsonSerializer.Deserialize <Poster>(jsonTextReader);

                                // do something with the poster
                            }
                        }
                    }
                }
            }
        }