Quali sono le opzioni per consumare un servizio RESTful utilizzando il framework .Net? Quando è preferibile utilizzare WCF (utilizzando WebChannelFactory) su HttpClient?Come consumare un servizio riposante in .NET?
risposta
Il progetto amaca rende molto facile da consumare servizi RESTful, è possibile utilizzarlo per creare facilmente le richieste http richiesto Hai bisogno:
Partenza restsharp. Non l'ho usato, ma sto cercando di consumare i nostri servizi REST.
Penso che WCF sia preferibile ogni volta che si desidera 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.
Per chiunque stia leggendo questo: WCF è essenzialmente morto. Se hai voglia di guardarlo, sappi che è una partenza completa da REST e dovrebbe essere usato solo se sai davvero di averne bisogno. – TheMonarch
@TheMonarch sembra che tu abbia l'impressione che WCF sia legato a uno specifico set di protocolli. A giudicare dal tuo commento, molto probabilmente assocerai WCF a varie tecnologie SOA come XML e SOAP. WCF è in realtà una struttura di comunicazione progettata per essere estesa per diversi protocolli. È vero che la maggior parte delle estensioni out-of-the-box sono correlate a SOA (una conseguenza del momento in cui è stato rilasciato WCF), ma le estensioni possono essere scritte/esistenti per REST (HTTP/JSON), buffer di protocollo, gRPC, o anche un protocollo personalizzato. –
La nuova libreria HTTP di Microsoft è qui https://www.nuget.org/packages/Microsoft.Net.Http e ho un post sul blog che mostra come utilizzarlo here.
Non si vorrebbe mai utilizzare WebChannelFactory su un servizio RESTful. L'accoppiamento generato da WebChannelFactory sconfigge il punto di REST.
Ci sono diversi modi di consumo di servizi REST in .NET:
- Plain .NET HTTP request
- WCF meccanismi
- HttpClient (consigliati, nuget package)
- Altre librerie (RestSharp, Amaca, ecc.)
Ho scritto un blog post che dimostra le prime tre opzioni.
A partire dal consumo tramite WCF o HttpClient penso che abbia senso leggere questo SO question per capire il potenziale dei servizi REST. Quando si consuma un servizio REST tramite WCF non è possibile utilizzare tutta questa potenza.
Si tratta di una tecnica di chiamare o consumare riposo webservice 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& [email protected]",ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Ho appena rilasciato un client REST qui oggi. Puoi scaricare il repository Git per vedere i campioni.
- Open Source. (Licenza MIT)
- Contrassegno linguaggio Markup. (Supporta JSON, SOAP e altri linguaggi di markup)
- Utilizzare tipi forti con REST.
- Supporta Android, iOS, Windows 10, Windows 10 Phone, Silverlight, .NET, .NET Core.
- Incredibilmente semplice.
- Async friendly (utilizza async, attende parole chiave).
Quando viene WCF (usando il WebChannelFactory) più preferibile 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.
- 1. Consumare metodo riposante da URL con Data Param Java
- 2. Consumare un servizio RESTful in Reactjs
- 3. Come consumare un servizio Web RESTful in Lotus Notes
- 4. Come consumare un servizio SOAP su HTTPS in C#?
- 5. come consumare il servizio wcf con rubino?
- 6. Node.js: come consumare SOAP servizio Web XML
- 7. servizio web riposante Endpoint non trovato
- 8. Monotouch/WCF: Come consumare il servizio wcf senza svcutil
- 9. ottenere l'accesso a HttpServletRequest oggetto nel servizio web riposante
- 10. nginx.conf per un'ape riposante
- 11. un soggiorno riposante risorsa Singleton
- 12. Stampa da un servizio .NET
- 13. Come posso consumare un servizio OData4 in Java utilizzando Olingo o SDL OData Framework
- 14. Consumare webservice da una DLL NET - problema app.config
- 15. Qual è il corretto "Modo Rails" per consumare un servizio web RESTful su un altro dominio?
- 16. È un'API riposante e un servizio di backend (come Parse) la stessa cosa?
- 17. In Powershell per consumare un complesso di saponeTipo per mantenere un servizio Soap hot
- 18. Come chiamare un servizio Web senza wsdl in .net
- 19. Come trovare "Nome visualizzato" di un servizio in .net?
- 20. Come creare un'interfaccia web per un servizio Windows in .Net?
- 21. Come consumare un file con un client ServiceStack
- 22. Consumare dati del modulo dal servizio WCF l'invio per posta
- 23. Come passare e consumare un parametro JSON su/con il servizio WCF RESTful?
- 24. Breeze e riposante WebAPI
- 25. merge riposante e scissione della risorsa
- 26. Strano problema con un servizio Windows .NET
- 27. Creazione di un servizio CalDAV con .Net
- 28. Consumare eventi COM in Python
- 29. Come eseguire una DLL come servizio in .NET
- 30. Come arrestare correttamente un servizio Windows .NET con più thread?
Come ha funzionato? Restsharp è una buona scelta? Sembra super conveniente e facile da usare. – Jonathan
Sì, mi piace davvero usarlo. –