【发布时间】:2012-02-11 14:37:33
【问题描述】:
使用 .Net 框架使用 RESTful 服务有哪些选择? WCF(使用 WebChannelFactory)什么时候比 HttpClient 更可取?
【问题讨论】:
使用 .Net 框架使用 RESTful 服务有哪些选择? WCF(使用 WebChannelFactory)什么时候比 HttpClient 更可取?
【问题讨论】:
微软最新的 HTTP 库在这里https://www.nuget.org/packages/Microsoft.Net.Http,我有一篇博文展示了如何使用它here。
您永远不会希望针对 RESTful 服务使用 WebChannelFactory。 WebChannelFactory 生成的耦合打败了 REST 的观点。
【讨论】:
查看restsharp。我没有使用它,但正在研究它以使用我们自己的 REST 服务。
【讨论】:
hammock 项目让使用 RESTful 服务变得非常容易,您可以使用它轻松创建所需的 http 请求:
【讨论】:
我认为 WCF 在您需要它提供的抽象时更可取。
WCF 提供了对正在使用的特定消息传递和通信协议的抽象。即使只考虑 RESTful 场景,您也可以更轻松地适应不同的消息格式(XML、JSON、HTML)。
WCF 还提供配置机制、扩展点和检测。
【讨论】:
在 .NET 中使用 REST 服务有几种不同的方式:
我写了一个blog post 来演示前三个选项。
关于通过 WCF 或 HttpClient 进行消费,我认为阅读此 SO question 以了解 REST 服务的潜力是有意义的。当您通过 WCF 使用 REST 服务时,您无法使用所有这些功能。
【讨论】:
我今天刚刚在这里发布了一个 REST 客户端。您可以下载 Git 存储库以查看示例。 https://bitbucket.org/MelbourneDeveloper/restclient-.net
WCF(使用 WebChannelFactory)何时更可取 HttpClient?
这是一个非常重要的问题。 WCF 是一个非常大的技术集合,允许您与许多不同的协议、身份验证方法等进行通信。它非常可配置,但 REST 很简单,几乎所有可用技术都支持它。如果您编写一个 REST 服务,那么几乎任何应用程序都可能使用它。实际上,问题在于您的目标受众是谁。
【讨论】:
这是在asp.net c#中调用或使用rest webservice的一种技术
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);
【讨论】: