2 pièce(s) jointe(s)
Erreur d'Execution dr'une action d'affichage d'auteurs
Bonjour,
J'ai crée une projet Asp.MVC de classe structuré ainsi (voir capture ecran)
La classe AuteurController contient une methode AfficherAuteurs, qui, pour s'executer fait appel à un une instance serviceAuteur de la classe ServiceAuteur, d'une application console ConsommerAPI
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
using ConsommerAPI;
using e_Bibliotheque.Models;
using Entite;
using System;
using System.Threading.Tasks;
using System.Web.Mvc;
namespace e_Bibliotheque.Controllers
{
[RoutePrefix("api/Auteur")]
public class AuteurController : Controller
{
[Route("")]
// GET: Auteur
[HttpGet]
public async Task<ActionResult>AfficherAuteurs()
{
VM_ListAuteurs modelAuteurs = new VM_ListAuteurs();
modelAuteurs.ListAuteurs = null;
try
{
ServiceAuteur serviceAuteur = new ServiceAuteur();
//les modèles récupèrent les resultats recupérés en BDD + la vue les affiche
modelAuteurs.ListAuteurs = await serviceAuteur.recupLesAuteursAsync();
return View(modelAuteurs);
}
catch(Exception ex)
{
Console.WriteLine("une erreur s'est produite" + ex.Message);
return View(modelAuteurs);
}
} |
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
|
using Entite;
using System;
using System.Collections.Generic;
using System.Net.Http;
using System.Threading.Tasks;
using Newtonsoft.Json;
using System.Net.Http.Formatting;
namespace ConsommerAPI
{
public class ServiceAuteur
{
public async Task<IEnumerable<Auteur>> recupLesAuteursAsync()
{
HttpClient client = new HttpClient();
client.BaseAddress = new Uri("https://localhost:59281/api/");
var urlAPI = client.BaseAddress;
var objetReponse = await client.GetAsync($"{urlAPI}Auteur");
if (objetReponse.StatusCode == System.Net.HttpStatusCode.OK)
{
var objetContenu = objetReponse.Content;
var stringContenu = await objetContenu.ReadAsStringAsync();
var listAuteur = JsonConvert.DeserializeObject<IEnumerable<Auteur>>(stringContenu);
return listAuteur;
}
else if (objetReponse.StatusCode == System.Net.HttpStatusCode.NotFound)
{
return null;
}
else
{
var objetContenu = objetReponse.Content;
var stringContenu = await objetContenu.ReadAsStringAsync();
throw new Exception("Un problème avec API : status = {objetReponse.StatusCode}, contenu : {stringContenu}");
}
} |
Quand je lance le serveur IIS, j'obtiens l'erreur en capture ecran.
Est ce que cela a un lien avec la route qui est [RoutePrefix("api/Auteur")] alors que l'on voit dans l'URL uniquement http://localhost:59281/Auteur/AfficherAuteurs sans api/ devant Auteur.
si j'ai bien compris ,"api/Auteur" est le nom du controller .
Or ce n'est pas celui qui apparaît au niveau d el'URL.
Merci beaucoup de votre aide sur ce sujet .
Bien cordialement.
new_wave
-