从.NET使用REST Web服务的最佳方法是什么?
答案 0 :(得分:35)
直接且简单的方法是使用System.Net命名空间中的WebClient。
您需要做的就是以查询字符串形式传递所需的任何参数所需的Uri,然后您应该以字符串的形式返回响应,无论是json还是xml。例如。
using System.Net;
string param = "hello";
string url = String.Format("http://somedomain.com/samplerequest?greeting={0}",param);
WebClient serviceRequest = new WebClient();
string response = serviceRequest.DownloadString(new Uri(url));
然后,就像Nick提到的那样,您可以根据需要使用XmlDocument或JavaScriptSerializer来操作结果。无论如何,我建议查看它上面的文档,看看它是否符合您的需求。 http://msdn.microsoft.com/en-us/library/system.net.webclient.aspx
答案 1 :(得分:9)
使用像Kenney这样的WebClient,您可以使用HttpWebRequest和HttpWebResponse,并使用StreamReader和XmlDocument处理结果。
答案 2 :(得分:3)
还有RestSharp,一个轻量级的.NET组件,可以让您轻松使用REST Web服务
答案 3 :(得分:2)
答案 4 :(得分:2)
在我看来,实现REST API的最简单方法是使用服务栈:
我是上一个Windows项目,我在WCF和ServiceStack中进行了概念验证,服务堆栈应用程序更快(您可以在服务堆栈站点中查找测量值)并且更易于维护(代码更少,魔法实现更少)。最重要的是,它可以帮助您专注于简单。
答案 5 :(得分:1)
您想要消费还是发布。如果你想要消费,比如提出请求,与它进行交互的最佳方式就是找出它将要梳理的类型,通常是JSON或XML。获得类型后,可以使用XmlDocument或JavaScriptSerializer来提取信息并使用它。
如果您想要生成REST接口,那么您可能希望使用MVC,REST视图或WCF,如@Brian所说。
答案 6 :(得分:1)
如果使用ASP.NET Web API构建REST服务,那么我将使用Microsoft Http客户端库。 (nuget包可用)。注:这似乎取代了下面链接中nuget屏幕截图中列出的web api客户端库。
这适用于.NET 4,Windows应用商店应用,Windows Phone 7.5 / 8,Silverlight 4和5。
理论上,您可以使用它来调用使用其他框架构建的任何REST服务。
以下是使用HttpClient类调用REST服务的一些示例的链接: Calling a web api from a .net client