13 votes

Comment puis-je appeler un service web et passer des paramètres en utilisant l'URL ?

Comment puis-je appeler un service web ASP .NET et passer des paramètres en utilisant l'URL ?

Par exemple, l'URL pour le service est comme,

http://[localhost]:31856/MySystem/MyAPI.asmx?op=getHeight

J'ai besoin de passer deux paramètres a et b, j'ai essayé

http://[localhost]:31856/MySystem/MyAPI.asmx?op=getHeight?a=254&b=1

Mais j'ai échoué.

Veuillez me conseiller.

Merci beaucoup,

10voto

Ashwin Singh Points 3814

Si vous devez passer plus d'un paramètre, utilisez le format suivant param1=value1&param2=value2 et ainsi de suite. Votre lien devrait donc être le suivant :

http://[localhost]:31856/MySystem/MyAPI.asmx/AnyMethodName?op=getHeight&a=254&b=1

Vous avez besoin d'une méthode comme celle-ci, qui renvoie une liste de chaînes de caractères, juste pour la démonstration.

    [WebMethod]
    public List<string> AnyMethodName(string op, string a, string b)
    {
       //Do whatever you want, get answer
        return (ans.ToList());
    }

8voto

punatiainen Points 127

J'ai eu le même problème et j'ai dû ajouter ce qui suit dans ma webconfig à l'intérieur de l'étiquette system.web -tag :

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

Le reste était à peu près comme déjà mentionné (en utilisant l'exemple de la réponse d'Ashwin, j'ai juste enlevé le paramètre opérationnel).

   [WebMethod]
    public List<string> AnyMethodName(string a, string b)
    {
       //Do whatever you want, get answer
        return (ans.ToList());
    }

Après cela, j'ai pu appeler le webservice avec ce qui suit (en supprimant à nouveau le paramètre op) :

http://localhost/MySystem/MyAPI.asmx/AnyMethodName?a=254&b=1

4voto

jonnyGold Points 2593

Changez le deuxième ? a & . Si vous regardez la page rendue par http://[localhost]:31856/MySystem/MyAPI.asmx il vous montrera comment l'appeler en tant qu'une HTTP GET .

2voto

kad1r Points 828

Ce n'est pas comme ça.
Vous devez déclarer les paramètres dans la fonction. Par exemple, voici un petit exemple :

[WebMethod]
public string[] getVariables(string sop, string sgsm)
{ // do what you want ... }

Alors quand vous l'appelez

WebReference.Service1 service = new WebReference.Service1();
service.getVariables("foo", "blabla");

0voto

Siddhartha Points 759

Suivez les étapes ci-dessous

Étape 1 : Cliquez sur Add Service Reference et ajoutez la référence du service. Cela crée une référence dans une classe partielle au service et toutes les méthodes dont vous avez besoin pour appeler le service sous l'espace de noms du projet.

Étape 2 : Ajouter la même classe en utilisant .

Étape 3 : Parcourez le fichier de classe généré sous la référence de service et obtenez le nom de celui-ci.

Étape 4 : Créez un client comme new Service1SoapClient("Service1Soap"); et ensuite utiliser le service comme Méthode . Vous pouvez passer le paramètre (si nécessaire) comme vous le faites en appelant une méthode depuis une autre.

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