J'ai un service WCF qui utilise une liaison http de base. Comment invoquer ses opérations/méthodes via un navigateur?
Je recommanderais de configurer plusieurs points de terminaison pour le service. Ajoutez un point de terminaison à l'aide de webHttpBinding pour obtenir une version XML du service. Si cela est fait correctement, la réponse que vous obtiendrez du service est identique au point de terminaison basicHttpBinding, mais sans la surcharge SOAP.
En dehors de cela, vous ne pouvez pas appeler un service Web SOAP directement à partir du navigateur car il nécessite une publication de formulaire. Vous pouvez utiliser un outil pour le tester en utilisant SOAP cependant, je recommande IU Soap . C'est écrit en Java mais j'essaie de ne pas lui en vouloir. :)
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 invoquer la méthode comme celle-ci
http: // localhost: 8085/GeoPlacesDataService/placesList/1
où 10 est le paramètre userId.
Remarque: Pour ajouter WebGetAttribute, vous devez référencer l'espace de noms System.ServiceModel.Web qui se trouve dans un assembly séparé
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"
.