2017-06-21 3 views
0

J'ai essayé de voir mon action de contrôleur d'API dans le navigateur et je n'arrive pas à trouver l'URL que cette endpiont résout aussi. J'ai essayé:Mon action de contrôleur d'API simple ne semble pas fonctionner

http://localhost:2797/api/Country/Testing  
http://localhost:2797/api/Country/GetTesting  

Je reçois cette erreur:

<Error> 
<Message> 
The requested resource does not support http method 'GET'. 
</Message> 
</Error> 


public class CountryController : ApiController 
    { 
     public HttpResponseMessage Testing() 
     { 
      HttpResponseMessage response = Request.CreateResponse(HttpStatusCode.OK, "value"); 
      response.Content = new StringContent("hello", System.Text.Encoding.Unicode); 
      response.Headers.CacheControl = new CacheControlHeaderValue() 
      { 
       MaxAge = TimeSpan.FromMinutes(20) 
      }; 

      return response; 
     } 

    } 
+0

S'il vous plaît nous montrer la configuration de votre itinéraire dans 'WebApiConfig.Register'. Si vous n'avez pas modifié la route standard, l'URI correcte pour votre contrôleur est juste 'api/{controller}', sans la partie '{action}'. –

Répondre

0

ajouter [HttpGet] au-dessus de Testing méthode

[HttpGet] 
public HttpResponseMessage Testing() 

ou ajouter Get au nom de la méthode

public HttpResponseMessage GetTesting()

Ensuite, il doit être accessible via http://localhost:2797/api/Country/Testing

+0

Merci. Quand je fais cela, chrome me demande de télécharger un fichier avec le contenu 'hello' dedans. pourquoi donc? problème d'en-tête? –

+0

Cela signifie que maintenant votre méthode fonctionne, à propos du téléchargement de fichier texte: votre contenu est le contenu de la chaîne 'new StringContent (' – RezaRahmati

+0

remove 'response.Content = ..' line totalement – RezaRahmati