以编程方式调用WCF REST服务而不引用合同

时间:2011-07-11 09:17:49

标签: wcf rest service reference contract

这是一个有用的基础:

How to programmatically connect a client to a WCF service?

但是,我希望我的客户在不知道任何服务合同的情况下做同样的REST风格。

看到如何在Javascript / jQuery中轻松完成,C#没有选项似乎很奇怪。

2 个答案:

答案 0 :(得分:3)

在C#中,您只需要一个标准的HttpWebRequest或WebClient:

var request = HttpWebRequest.Create("http://localhost:28330/books");
var response = request.GetResponse();

var reader = new StreamReader(response.GetResponseStream());
Console.WriteLine(reader.ReadToEnd());

var client = new WebClient();
Console.WriteLine(client.DownloadString("http://localhost:28330/books"));

当然你仍然需要对XML或JSON(或者返回的任何数据格式)做一些事情,但是在jQuery的JavaScript中没有什么不同。

答案 1 :(得分:0)

  

看看如何在Javascript / jQuery中轻松完成,看起来很奇怪   C#没有选择。

这只是部分正确。确实如此 - 您可以使用HttpWebRequest拨打电话。旧的REST StarterKit(仅限技术预览)和新的Web-API(仅限CTP)在HttpClient类中提供更好的支持。