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)); } } } } } }
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)); } } } }