web-dev-qa-db-fra.com

Aucune ressource HTTP correspondant à l'URI de la demande n'a été trouvée

J'ai vérifié un certain nombre de liens pour comprendre la cause de l'erreur, mais sans résoudre mon problème.

J'essaie d'accéder à l'action WebAPi de Postman mais j'obtiens l'erreur ci-dessous.

"message": "Aucune ressource HTTP ne correspond à l'URI de la requête ' http: // localhost: 50684/api/albums/history '.",
"messageDetail": "Aucun type ne correspond au contrôleur nommé" album "." 

Mon API.

[Authorize]
public class AlbumsController : ApiController
{

   [HttpGet]
   [Route("api/album/history/")]
   public BaseTO GetHistory(string type,int id)
   {  
      //api stuff
   }
 }

J'ai essayé avec api/album/history/{anything}

En passant un appel de Postman je passe: -

  • Jeton d'autorisation
  • Type
  • Id

Toute aide/suggestion hautement appréciée. Merci

4
Kgn-web

Avez-vous activé le routage d'attribut dans api config? config.MapHttpAttributeRoutes();

Avec votre route actuelle, vous devez la frapper via la chaîne de requête http://localhost:50684/api/albums/history?type=test&id=1 et décorer les paramètres avec [FromUri]

[HttpGet]
   [Route("api/albums/history/")]
   public IHttpActionResult GetHistory([FromUri]string type,[FromUri]int id)
   {  
      //api stuff
   }

ou pour frapper l'api via les paramètres de route - http://localhost:50684/api/albums/history/test/1

[HttpGet]
   [Route("api/albums/history/{type}/{id}")]
   public IHttpActionResult GetHistory(string type,int id)
   {  
      //api stuff
   }
5
Developer

J'ai eu le même problème que je viens de changer cela:

AllowInsecureHttp = true

    public void ConfigureAuth(IAppBuilder app)
    {

        app.CreatePerOwinContext(ApplicationDbContext.Create);
        app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);


        app.UseCookieAuthentication(new CookieAuthenticationOptions());
        app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);


        PublicClientId = "self";
        OAuthOptions = new OAuthAuthorizationServerOptions
        {
            TokenEndpointPath = new PathString("/api/Token"),
            Provider = new ApplicationOAuthProvider(PublicClientId),                
            AuthorizeEndpointPath = new PathString("/api/Account/ExternalLogin"),
            AccessTokenExpireTimeSpan = TimeSpan.FromDays(1),
            AllowInsecureHttp = true
        };

        app.UseOAuthBearerTokens(OAuthOptions);

    }
0
merrais

Votre code devrait être comme ça:

[Authorize]
public class AlbumsController : ApiController
{

   [HttpGet]
   [Route("api/albums/history/")]
   public IHttpActionResult GetHistory(string type,int id)
   {  
      //api stuff
   }
 }

et votre appel de Postman devrait être comme ça et assurez-vous que votre méthode dans Postman est GET:

http: // localhost: 50684/api/album/history? type = test & id = 1

espérons que cela vous aidera.

0
Naman Upadhyay