在.NET中实现一个Web service调用的替换方案

ZDNet软件频道 时间:2002-12-12 作者:BUILDER.COM |  我要评论()
本文关键词:
我们将重点给出两个消费者调用Web service的可用方法:HttpGet和HttpPost。当你的应用程序不能用SOAP去消费Web service的时候,你可以选择使用它们。

当开发人员在Visual Studio .NET中进行Web service的开发时,IDE完成了大部分的用于调用Web service的复合管道。开发人员可以不用真正理解SOAP或者用于Web service描述语言(WSDL)文件的高级XML实现的内部原理,就能编写以及消费Web service。

默认情况下,Visual Studio .NET使用SOAP作为请求Web service以及Web service应答的通信传输协议。但是如果你需要从一个不支持SOAP的应用程序消费Web service;或者可能你使用的是支持SOAP通信的语言,但是需要更手工的方法来编写Web service的消费者,情况会是怎么样呢?

我们将重点给出两个消费者调用Web service的可用方法:HttpGet和HttpPost。这些方法知道的人不多,使用也很少,因为它们没有SOAP实用,没有SOAP功能强大。虽然如此,其能力就在于此,当你的应用程序不能用SOAP去消费Web service的时候,你可以选择使用它们。

HttpGet

HttpGet是通过Http协议请求信息的最基本的方法。参数使用一个查询字符串(querystring)传递给被请求的资源。

当你在浏览器中键入Web service的地址,并且通过Help页面调用Web service的任何方法时,你事实上就是在用HttpGet调用Web service。你提供的任何参数都被作为一个查询字符串添加到URL上。

方法的名字和它的参数出现在URL中,Web service能对其解释并分析任何参数的名字/值对(假设你没有为Web service关闭HttpGet)。Web service完成它的逻辑并返回给客户一个XML文档。

虽然这种方法有点过于简单,而且由于对方法名字和参数的困难编码使得它不那么的面向对象,但是事实上它却能使世界上的任何Web浏览器访问你的Web service。

HttpPost

HttpPost的原理与HttpGet的类似。参数的发送一般是通过HTML表单完成的。设置<form>标记的方法属性以一种更加谨慎的方法将信息发送给请求者。

将<form>标记的动作属性设置为Web service的名字还有要执行的方法的名字,就可以使用HttpPost调用一个Web service。如果方法还需要任何参数,那么这些参数必须定义为HTML表单的元素。元素的值被发送给Web service,Web service然后就分析名字/值对并传递一个XML文档给客户。

再一次说明,只有在Web service的HttpPost没有被禁用的情况下Web浏览器才能通过发送HTML表单调用Web service。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134