Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

400 (Bad Request) => Mesmo passando todos os dados ele continua dando esse erro

// O que foi enviado.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

// Erro

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

// Código


        private string EnvolveComAspasDuplas(string valor)
        {

            return $"\"{valor}\"";

        }


        private HttpContent CreateMultipartFormDataContent(LivroUpload model)
        {

            var content = new MultipartFormDataContent();


            content.Add(new StringContent(model.Titulo), EnvolveComAspasDuplas("titulo"));
            content.Add(new StringContent(model.Subtitulo), EnvolveComAspasDuplas("subtitulo"));
            content.Add(new StringContent(model.Resumo), EnvolveComAspasDuplas("resumo"));
            content.Add(new StringContent(model.Autor), EnvolveComAspasDuplas("autor"));
            content.Add(new StringContent(model.Lista.ParaString()), EnvolveComAspasDuplas("lista"));

            if (model.Capa != null)
            {
                var imagemContent = new ByteArrayContent(model.Capa.ConvertToBytes());

                imagemContent.Headers.Add("contet-type", "imagem/png");
                content.Add(imagemContent, EnvolveComAspasDuplas("capa"));
            }

            return content;

        }

        public async Task PostLivroAsync(LivroUpload model)
        {
            HttpContent content = CreateMultipartFormDataContent(model);
            var resposta = await _httpClient.PostAsync("livros", content);
            resposta.EnsureSuccessStatusCode();

        }
[HttpPost]
        [ValidateAntiForgeryToken]
        public async Task<IActionResult> Novo(LivroUpload model)
        {
            if (ModelState.IsValid)
            {
                await _api.PostLivroAsync(model);

                return RedirectToAction("Index", "Home");
            }
            return View(model);
        }
3 respostas

Esse erro deu na aula 3, 2º vídeo (Enviando multipart/formdata)

Segue o link do repo:

https://github.com/IgorTudisco/API_Livros

Status pelo navegador.

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

solução!

Nos métodos incluir e alterar devemos mudar de [FromDody] para [FromForm], para indicar que agora as informações estão vindo atravez de um formulário e não do corpo da requisição.