web-dev-qa-db-fra.com

Comment appeler un service Web et transmettre des paramètres à l'aide de l'URL

Comment appeler un service Web ASP .NET et transmettre des paramètres à l'aide de l'URL?

Par exemple, l'URL du service est la suivante:

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 a échoué.

S'il vous plaît des conseils.

Merci beaucoup,

8
DafaDil

Si vous devez transmettre plusieurs paramètres, utilisez le format param1=value1&param2=value2 et ainsi de suite. Votre lien doit donc être: 

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

Vous avez besoin d'une méthode comme celle-ci. Cette méthode retourne une liste de chaînes, 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());
    }
8
Ashwin Singh

J'ai eu le même problème et je devais ajouter ce qui suit dans ma webconfig à l'intérieur de la variable system.web:

<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, simplement supprimé le paramètre op)

   [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 service Web avec les éléments suivants (en supprimant à nouveau le paramètre op):

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

Remplacez le deuxième ? par &. Si vous regardez la page rendue par http://[localhost]:31856/MySystem/MyAPI.asmx, elle vous montrera comment l'appeler comme un HTTP GET.

4
bluevector

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

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

Puis quand tu l'appelles

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

Suivez les étapes ci-dessous  

Étape 1: Cliquez sur Ajouter une référence de service et ajoutez une référence de service . Il 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 dans l'espace de noms du projet.

Étape 2: / Ajoutez 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-en le nom.

Étape 4: Créez un client tel que new Service1SoapClient("Service1Soap");, puis utilisez le service en tant que méthode. Vous pouvez transmettre le paramètre (si nécessaire) de la même façon que vous passez lorsque vous appelez une méthode depuis une autre. 

0
Siddhartha