Quelles sont mes options pour utiliser un service RESTful en utilisant le framework .Net? Quand WCF (utilisant WebChannelFactory) est-il préférable à HttpClient?
La dernière bibliothèque HTTP de Microsoft est ici https://www.nuget.org/packages/Microsoft.Net.Http et j'ai un article de blog montrant comment l'utiliser ici .
Vous ne voudrez jamais utiliser WebChannelFactory avec un service RESTful. Le couplage généré par WebChannelFactory détruit le point de REST.
Départ restsharp . Je ne l'ai pas utilisé, mais j'examine la possibilité de consommer nos propres services REST.
Le projet hamac facilite l'utilisation des services RESTful. Vous pouvez l'utiliser pour créer facilement les requêtes http requises:
Je pense que WCF est préférable chaque fois que vous voulez l'abstraction fournie.
WCF fournit une abstraction sur les protocoles de messagerie et de communication spécifiques utilisés. Même en ne considérant qu'un scénario RESTful, vous pouvez plus facilement vous adapter à différents formats de message (XML, JSON, HTML).
WCF fournit également des mécanismes de configuration, des points d'extensibilité et une instrumentation.
Il existe peu de façons de consommer des services REST dans .NET:
J'ai écrit un blog post qui illustre les trois premières options.
Au moment de consommer via WCF ou HttpClient, je pense qu'il est logique de lire cette SO question pour comprendre le potentiel des services REST. Lorsque vous utilisez un service REST via WCF, vous ne pouvez pas utiliser tout ce pouvoir.
C’est une technique d’appel ou de consommation de Webservice dans asp.net c #
var client = new RestClient("url");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddParameter("application/x-www-form-urlencoded",
"type=password& [email protected]",ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Je viens de publier un client REST ici aujourd'hui. Vous pouvez télécharger le référentiel Git pour voir les exemples . https://bitbucket.org/MelbourneDeveloper/restclient-.net
Quand est-il préférable d'utiliser WCF (avec WebChannelFactory) plutôt que HttpClient?
C'est une question très chargée. WCF est un très vaste ensemble de technologies vous permettant de communiquer avec différents protocoles, méthodes d'authentification, etc. Il est très configurable, mais REST est simple et supporté par presque toutes les technologies disponibles. Si vous écrivez un service REST, il est probable que presque toutes les applications pourraient le consommer. En réalité, la question est de savoir quel est votre public cible.