66 votes

Activer le service web ASP.NET ASMX pour les requêtes HTTP POST / GET

Je voudrais activer un service web ASP.NET classique (ASMX) pour les requêtes HTTP POST et GET. Je sais que cela peut être fait au niveau de la machine ou de l'application en ajoutant ...

<webServices>
    <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
    </protocols>
</webServices>

dans le fichier machine.config ou web.config. Ma question est la suivante : les requêtes HTTP POST et GET peuvent-elles être activées au niveau du service web ou de la méthode web plutôt que par application ou par machine ?

Mon service web est écrit en c# avec net 3.5sp1.

49voto

tanathos Points 4145

Essayez de déclarer UseHttpGet sur votre méthode.

[ScriptMethod(UseHttpGet = true)]
public string HelloWorld()
{
    return "Hello World";
}

42voto

BLΞND OnLine Points 241

En fait, j'ai trouvé une façon un peu bizarre de le faire. Ajoutez le protocole à votre web.config, mais à l'intérieur d'un élément location. Spécifiez l'emplacement du webservice comme attribut path, comme ceci :

<location path="YourWebservice.asmx">
  <system.web>
    <webServices>
      <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
      </protocols>
    </webServices>
  </system.web>
</location>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X