我有什麼選擇使用.Net框架來使用RESTful服務?何時WCF(使用WebChannelFactory)更適合HttpClient?如何在.NET中使用穩定的服務?
回答
吊牀項目使得它很容易消耗RESTful服務,你可以用它來輕鬆地創建你所需要的必要的http請求:
退房restsharp。我沒有使用它,但我正在研究它以消耗我們自己的REST服務。
我認爲,只要你想它提供的抽象WCF是優選的。
WCF提供了所採用的特定消息和通信協議的抽象。即使只考慮一個RESTful場景,你也可以更容易地適應不同的消息格式(XML,JSON,HTML)。
WCF還提供配置機制,可擴展性點,和儀表。
對於現在讀這個的人:WCF基本上是死的。如果您想深入研究它,請確保它完全脫離REST,只有在您確實知道您需要時才能使用它。 – TheMonarch 2017-07-13 16:15:48
@ TheMonarch你似乎覺得WCF與一組特定的協議綁定在一起。根據您的評論判斷,您最有可能將WCF與XML和SOAP等各種SOA技術相關聯。 WCF實際上是一個爲不同協議而擴展的通信框架。確實,大部分開箱即用的擴展與SOA(WCF發佈時的後果)相關,但擴展可以針對REST(HTTP/JSON),協議緩衝區,gRPC,甚至是自定義協議。 – 2017-07-17 20:20:08
微軟最新的HTTP庫在這裏https://www.nuget.org/packages/Microsoft.Net.Http,我有一個博客帖子顯示如何使用它here。
你絕不會希望使用WebChannelFactory對RESTful服務。由WebChannelFactory生成的耦合擊敗了REST。
有在.NET中使用REST服務的幾種不同的方式:
- 平原.NET HTTP request
- WCF機制
- HttpClient(推薦,nuget package)
- 其他庫(RestSharp,吊牀等)
我寫了一個blog post,演示前三個選項。
通過WCF或消費的HttpClient我覺得很有道理閱讀本SO question瞭解REST服務的潛力。當您通過WCF使用REST服務時,您無法使用全部功能。
這是打電話或在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);
我今天發佈一個REST客戶端耗費在這裏休息web服務的一種技術。您可以下載Git回購以查看示例。
- 開源。 (MIT許可證)
- 標記語言不可知。 (支持JSON,SOAP和其他標記語言)
- 在REST中使用強類型。
- 支持Android,iOS版時,Windows 10時,Windows 10電話,Silverlight中,.NET,.NET的核心。
- 令人難以置信的簡單。
- 異步友好(使用異步,等待關鍵字)。
當WCF(使用WebChannelFactory)更優選的是 HttpClient的?
這是一個非常有問題的問題。 WCF是一個非常大的技術集合,允許您與許多不同的協議,身份驗證方法等進行通信。它非常易於配置,但REST非常簡單,幾乎可用所有技術支持。如果您編寫REST服務,幾乎所有的應用程序都可能會使用它。真的,問題是關於你的目標受衆是誰。
- 1. 使用WADL代替WSDL的.NET中的穩定服務
- 2. .NET TCP服務器穩定性問題
- 3. 是一個c + + windows服務比.net windows服務更穩定 - ?
- 4. 如何在.Net中使用Web服務
- 5. 如何使用C#.NET中的Windows服務調用Windows服務?
- 6. Web應用程序的穩定服務
- 7. 穩定的RSS閱讀器使用.NET
- 8. .Net運行時優化服務正在使我的系統不穩定
- 9. 如何在.NET中調用微服務
- 10. .NET CORE穩定版
- 11. 如何使用POST方法在iPhone中使用.NET Web服務?
- 12. Django:即使使用多個服務器,request.session也是穩定的?
- 13. 如何使用.Net 4.0 REST WCF服務?
- 14. 如何使用.Net讀取Web服務
- 15. 如何在Silverlight WCF生成的服務中使用protobuf-net
- 16. 如何在java持久化實體中使用平穩的web服務
- 17. 如何在iPhone應用程序中使用.NET Web服務?
- 18. 如何在.NET應用程序中使用此Web服務?
- 19. 如何在WCF服務中使用服務定位器
- 20. 使用CXF和Kerberos身份驗證的穩定服務
- 21. 在Java中使用.NET Web服務
- 22. 在Oracle Forms中使用.NET Web服務
- 23. 在iOS中使用.NET Web服務
- 24. 在.net中使用p6 web服務
- 25. 在web服務中使用p4.net
- 26. 在Android中使用.net web服務
- 27. 在.net環境中使用MSChart服務
- 28. 在.NET中使用WCF REST服務?
- 29. 使用.net的Restful服務
- 30. 如何託管一個穩定的WCF Web服務
這是如何工作的? restsharp是不錯的選擇?它看起來超級方便,易於使用。 – Jonathan 2017-01-31 14:20:58
是的,我真的很喜歡它。 – 2017-02-09 22:20:15