要在 C# 中使用 RESTful Web 服务,我应该使用 HttpWebRequest 吗?

Posted

技术标签:

【中文标题】要在 C# 中使用 RESTful Web 服务,我应该使用 HttpWebRequest 吗?【英文标题】:To consume a RESTful web service in C#, should I use HttpWebRequest? 【发布时间】:2010-11-30 21:48:37 【问题描述】:

如何在 C# 代码中使用 RESTful Web 服务?

注意:我所说的 RESTful 是指非 SOAP。例如,在 flickr API 中,您可以按如下方式调用其 Web 服务以返回 JSON 数据:

http://api.flickr.com/services/feeds/photos_public.gne?tags=cats&tagmode=any&format=json

我只是使用 HttpWebRequest 吗?

如果我使用带有 POST 参数的 Web 服务怎么办?那也会使用 HttpWebRequest 吗?

在消费者端使用 WCF 有什么好处吗?

【问题讨论】:

【参考方案1】:

WCF 为通信提供了统一的编程模型,因此如果您以后决定不想使用 REST 或想要提供额外类型的端点(例如 SOAP),则只需更改配置即可。

看看 WCF 的 REST:

http://msdn.microsoft.com/en-us/netframework/cc950529.aspx

【讨论】:

此链接上的此文档建议我使用 WCF REST 入门工具包中的 HttpClient 类,该工具目前是预览版。我不能在我的环境中使用预览版——我应该只使用 HttpWebRequest 吗? 那么你可以使用HttpWebRequest,这个链接可能会有所帮助***.com/questions/1443858/… HttpClient 建立在 HTTPWebRequest 之上,实际上不依赖于 WCF,除非您使用 Syndication 的东西。完整的来源,非常值得一看。这是一个很好的例子,说明如何正确包装 HTTP WebRequest 以用于 REST 服务。【参考方案2】:

他们是 .NET Framework 3.5 增强培训工具包中的演示和实验室,该工具包提供了两个基于创建、服务和使用 RESTFul 服务的实验室。以上链接是REST服务最好的MS组合资源。

鲍勃。

【讨论】:

以上是关于要在 C# 中使用 RESTful Web 服务,我应该使用 HttpWebRequest 吗?的主要内容,如果未能解决你的问题,请参考以下文章

KISS:与 RESTful Web 服务通信的简单 C# 应用程序

在 C# RESTful Web 服务中删除 xml 命名空间返回字符串

解析来自 Restful Web 服务的响应的 C# 代码

C# 服务端篇之实现RestFul Service开发

C# Web Api一个小例子

使用RestFul Web服务中的xml