编程调用WCF REST服务,无需引用合同。

12 浏览
0 Comments

编程调用WCF REST服务,无需引用合同。

这是一个有用的基础:

如何以编程方式连接客户端到WCF服务?

然而,我希望我的客户端以REST风格执行相同的操作,而无需了解任何服务契约。

考虑到在JavaScript / jQuery中很容易实现这个功能,C#没有提供类似的选项似乎有些奇怪。

0
0 Comments

问题的原因是虽然在Javascript / jQuery中很容易实现,但在C#中却没有相应的选项。解决方法是使用HttpWebRequest进行调用。另外,旧的REST StarterKit(仅为技术预览版)和新的Web-API(仅为CTP)在HttpClient类中提供了更好的支持。

0
0 Comments

问题的出现原因是程序员意识到在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服务进行交互。

0