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

Erro no retorno do ReadASAsync<Lista>();

Olá, na hora de retornar o conteúdo da api estou tecebendo o seguinte erro:

UnsupportedMediaTypeException: No MediaTypeFormatter is available to read an object of type 'ListaLeitura' from content with media type 'application/octet-stream'.

Alura.ListaLeitura.HttpClients.LivroAPIClient.GetListaLeituraAsync(TipoListaLeitura tipo) in LivroAPIClient.cs + return await response.Content.ReadAsAsync(); Alura.ListaLeitura.WebApp.Controllers.HomeController.ListaDoTipo(TipoListaLeitura tipo) in HomeController.cs + var lista = await _api.GetListaLeituraAsync(tipo); Alura.ListaLeitura.WebApp.Controllers.HomeController.Index() in HomeController.cs + var model = new HomeViewModel

Debuguei e o erro acontece neste método:

public async Task<Lista> GetListaLeituraAsync(TipoListaLeitura tipo)
{
   var response = await _httpClient.GetAsync($"ListaLeitura/{tipo}");
   response.EnsureSuccessStatusCode();
   return await response.Content.ReadAsAsync<Lista>();
}

Mais precisamente na linha

return await response.Content.ReadAsAsync();

Acredito que seja algum problema na leitura ReadAsync

Tentei várias coisas, mas nada rolou... alguém passou pelo mesmo?

Obrigado.

7 respostas

Marco, bom dia.

Faz um teste no endpoint que lista os livros de uma lista de leitura qualquer (ParaLer, Lendo ou Lidos). Faça o teste pelo Postman, lembra como é?

Veja qual o retorno está tendo e coloca aqui pra gente conversar.

No aguardo.

Olá Daniel, fiz a request com o postman, mas eu a mesma mensagem de erro, estou achanod que é algo em relação a IEnumerable que a ListaLeitura tem... Olhei as sobrecargas do ReadAsync e tem algumas com a opção de passar um IEnumerable... vou dar uma pesquisada nisso

Blz, Marco.

Já dá pra perceber que o erro está na API e não na aplicação que está consumindo, ou seja no ReadAsync(). Investiga a aplicação que está servindo a API e me dá um feedback aqui.

No aguardo.

Então Daniel, a resposta vem com o código certo, 200, ele dá o erro quando bate na linha do ReadAsync, ele inclusive passa pelo EnsureSuccessStatusCode... Tentei várias coisas mas não consegui nada :s

Daniel, você teria uma cópia do projeto usado em aula para eu tentar rodar aqui e ver se funciona? Estou preso nisso....

Nesse link você baixa o projeto no final da aula 3, mas esse método que pega a lista de leitura não foi alterado.

Veja se ajuda.

solução!

Daniel.. fechei e abri o visual studio, dei clean e rebuild, e agora funcionou... Não sei dizer o que aconteceu,mas agradeço pela atenção.