Come consumare un servizio riposante in .NET?

Quali sono le mie opzioni per consumare un servizio RESTful usando il framework .Net? Quando è preferibile utilizzare WCF (utilizzando WebChannelFactory) su HttpClient?

La nuova libreria HTTP di Microsoft è qui https://www.nuget.org/packages/Microsoft.Net.Http e ho un post sul blog che mostra come usarlo qui .

Non si vorrebbe mai utilizzare WebChannelFactory contro un servizio RESTful. L’accoppiamento generato da WebChannelFactory sconfigge il punto di REST.

Dai un’occhiata a restsharp . Non l’ho usato, ma sto cercando di consumare i nostri servizi REST.

Il progetto hammock semplifica molto i servizi RESTful, è ansible utilizzarlo per creare facilmente le richieste http richieste di cui hai bisogno:

https://github.com/danielcrenna/hammock

Penso che WCF sia preferibile ogni volta che vuoi l’astrazione che fornisce.

WCF fornisce un’astrazione sugli specifici protocolli di messaggistica e comunicazione utilizzati. Anche solo considerando uno scenario RESTful, puoi più facilmente adattarti a diversi formati di messaggio (XML, JSON, HTML).

WCF fornisce inoltre meccanismi di configurazione, punti di estensibilità e strumentazione.

Esistono diversi modi per utilizzare i servizi REST in .NET:

  • Semplice richiesta HTTP .NET
  • Meccanismi WCF
  • HttpClient ( pacchetto consigliato, nuget )
  • Altre librerie (RestSharp, Hammock, ecc.)

Ho scritto un post sul blog che dimostra le prime tre opzioni.

A partire dal consumo attraverso WCF o HttpClient penso che abbia senso leggere questa domanda SO per capire il potenziale dei servizi REST. Quando si consuma un servizio REST tramite WCF non è ansible utilizzare tutta questa potenza.

Ho appena rilasciato un client REST qui oggi. Puoi scaricare il repository Git per vedere i campioni. https://bitbucket.org/MelbourneDeveloper/restclient-.net

  • Open Source. (Licenza MIT)
  • Linguaggio Markup agnostico. (Supporta JSON, SOAP e altri linguaggi di markup)
  • Usa i tipi forti con REST.
  • Supporta Android, iOS, Windows 10, Windows 10 Phone, Silverlight, .NET, .NET Core.
  • Incredibilmente semplice.
  • Async friendly (usa async, attendi parole chiave).

Quando è preferibile utilizzare WCF (utilizzando WebChannelFactory) su HttpClient?

Questa è una domanda molto carica. WCF è una raccolta di tecnologie molto ampia che consente di comunicare con numerosi protocolli, metodi di autenticazione e così via. È molto configurabile, ma REST è semplice e supportato da quasi tutte le tecnologie disponibili. Se si scrive un servizio REST, è probabile che quasi tutte le app possano consumarlo. In realtà, la domanda riguarda chi è il tuo target di riferimento.

Questa è una tecnica per chiamare o utilizzare il resto del servizio web in 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& user_id=test@gmail.com",ParameterType.RequestBody); IRestResponse response = client.Execute(request);