编程调用WCF REST服务,无需引用合同。
编程调用WCF REST服务,无需引用合同。
这是一个有用的基础:
然而,我希望我的客户端以REST风格执行相同的操作,而无需了解任何服务契约。
考虑到在JavaScript / jQuery中很容易实现这个功能,C#没有提供类似的选项似乎有些奇怪。
问题的出现原因是程序员意识到在C#中可以使用标准的HttpWebRequest或WebClient来调用WCF REST服务,而不需要引用合同(Contract)。
解决方法是使用HttpWebRequest或WebClient来创建请求,并获取响应。然后可以使用StreamReader来读取响应流,并对返回的XML或JSON数据进行处理。在JavaScript中,使用jQuery也可以实现相同的操作。
以下是解决问题的代码示例:
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"));
以上代码片段展示了如何使用HttpWebRequest和WebClient来调用WCF REST服务,并获取返回的数据。
通过使用标准的HttpWebRequest或WebClient,我们可以在C#中编程调用WCF REST服务,而不需要引用合同。这提供了更灵活和简化的方式来与WCF REST服务进行交互。