29 votes

Appel de la méthode de service WCF via un navigateur

J'ai un service WCF qui utilise la liaison http de base. Comment invoquer ses opérations / méthodes via un navigateur?

36voto

Jalal El-Shaer Points 6027

Vous devez ajouter WebGetAttribute à votre méthode comme l'exemple suivant

[OperationContract]
[WebGet(UriTemplate = "/placesList/{userId}",
ResponseFormat = WebMessageFormat.Xml)]
List<Places> GetAllPlacesForUser(String userId)
{
  string xml = "";
  // build xml here
  return xml;
}

Maintenant dans le navigateur, vous pouvez appeler la méthode comme ceci

http://localhost:8085/GeoPlacesDataService/placesList/10
où 10 est le nom du paramètre.

Remarque: pour ajouter WebGetAttribute vous avez de Système de référence.ServiceModel.Web espace de nom qui se trouve dans un ensemble distinct

10voto

Steve Points 666

Je recommande l'installation de plusieurs points de terminaison du Service. Ajouter un point à l'aide de webHttpBinding pour obtenir une version XML du service. Si cela est fait correctement, la réponse que vous obtiendrez à partir du service est identique à la basicHttpBinding point de terminaison, mais sans le SAVON frais généraux.

Autre que cela, vous ne pouvez pas appeler un web service SOAP directement à partir du navigateur, car il nécessite un formulaire post. Vous pouvez utiliser un outil de test à l'aide d'un SAVON bien, je recommande le Savon de l'INTERFACE utilisateur. Ses écrits en Java, mais j'essaie de ne pas tenir contre elle. :)

6voto

Après avoir ajouté le code ci-dessus, la propriété du point de terminaison doit être modifiée dans web.config , binding="webHttpBinding" et behaviorConfiguration="webHttp" .

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