Exemplo n.º 1
0
        public async Task <BookResponse> PostAsync(BookPostRequest request)
        {
            var requestUri = new Uri("/api/books", UriKind.Relative);

            using (var requestStream = new MemoryStream())
            {
                await JsonSerializer.SerializeAsync(requestStream, request, DefaultJsonSerializerOptions.Options);

                requestStream.Seek(0, SeekOrigin.Begin);

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

                    using (var requestMessage = new HttpRequestMessage(HttpMethod.Post, requestUri))
                    {
                        requestMessage.Content = streamContent;

                        using (var responseMessage = await _httpClient.SendAsync(requestMessage, HttpCompletionOption.ResponseHeadersRead))
                        {
                            using (var contentStream = await responseMessage.Content.ReadAsStreamAsync())
                            {
                                return(await JsonSerializer.DeserializeAsync <BookResponse>(contentStream, DefaultJsonSerializerOptions.Options));
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 2
0
        public ActionResult <BookResponse> Post([FromBody] BookPostRequest postRequest)
        {
            var newBook = new Book
            {
                Id     = Guid.NewGuid(),
                Title  = postRequest.Title,
                Author = postRequest.Author
            };

            Books.Add(newBook);
            return(CreatedAtAction("Get", new { id = newBook.Id }, newBook.Map()));
        }
        public async Task <BookResponse> PostAsync(BookPostRequest request)
        {
            var requestUri = new Uri("https://localhost:44342/api/books");

            var bookJson = JsonSerializer.Serialize(request);

            var httpContent = new StringContent(bookJson, Encoding.UTF8, "application/json");

            var httpResponseMessage = await _httpClient.PostAsync(requestUri, httpContent);

            var responseJson = await httpResponseMessage.Content.ReadAsStringAsync();

            return(JsonSerializer.Deserialize <BookResponse>(responseJson, DefaultJsonSerializerOptions.Options));
        }
        public async Task <BookResponse> PostAsync(BookPostRequest request)
        {
            var requestUri = new Uri("/api/books", UriKind.Relative);

            var bookJson = JsonSerializer.Serialize(request);

            using (var requestMessage = new HttpRequestMessage(HttpMethod.Post, requestUri))
            {
                requestMessage.Content = new StringContent(bookJson, Encoding.UTF8, "application/json");

                using (var responseMessage = await _httpClient.SendAsync(requestMessage, HttpCompletionOption.ResponseHeadersRead))
                {
                    using (var contentStream = await responseMessage.Content.ReadAsStreamAsync())
                    {
                        return(await JsonSerializer.DeserializeAsync <BookResponse>(contentStream, DefaultJsonSerializerOptions.Options));
                    }
                }
            }
        }