使用ColdFusion MX 轻松调用SOAP Web服务

ZDNet软件频道 时间:2003-07-03 作者:周靖 译 |  我要评论()
本文关键词:
ColdFusion MX (CFMX)的一个重要优势在于可用它方便地构建使用Web服务的应用程序。本文介绍如何向Amazon.com最近推出的Web服务接口查询及返回数据,从而证明了用CFMX来调用Web服务是多么简单。
本文译自Builder.com,未经许可请勿转载ColdFusion MX (CFMX)的一个重要优势在于可用它方便地构建使用Web服务的应用程序。随着舆论对Web服务的造势逐渐停止,慢慢出现了一些真正有用的应用程序。CFMX易于使用的特点,使其成为一种颇具吸引力的开发方案。本文介绍如何向Amazon.com最近推出的Web服务接口查询及返回数据,从而证明了用CFMX来调用Web服务是多么简单!


有关ColdFusion Web服务的详情
要更多地了解如何使用ColdFusion来构建和使用Web服务,请阅读以下文章:
ColdFusion MX 简化web服务的调用和XML的处理
揭开ColdFusion MXWeb服务的面纱 


正式开发之前,首先要访问Amazon Web Services网页,下载开发包,并取得你的开发凭据(也就是你的ID号)。调用Amazon的Web服务时,需要发送这个凭据。Amazon凭借它将你的网站识别为一个连锁站点,并向你支付相关的推销报酬。凭据是免费的;如果愿意,可用它申请成为一个连锁店。就本例来说,你惟一需要的就是这个开发凭据。

执行关键字搜索

首先,我想用一些关键字来查询Amazon.com,并显示结果。在开发包的文档中,有一节专门解释搜索请求的格式,并描述了响应的结构。这里要注意两点。

首先,文档声称对于请求方法KeywordSearchRequest,有几个值是必须提供的,其中包括:keywordpagemodetagtypesort以及devtag。文档对这些变量进行了说明。从表面看,你似乎需要调用Amazon Web服务,并向其传递上述每个参数值,如清单A所示。

但实情并非如此。我花了一些时间调查和试验,最终找到了解决方案:Amazon只希望你传递一个变量,也就是keyWordSearchRequest,它是包含所需值的一个数组或结构。因此,正确的做法是首先构造好你的搜索请求结构,再将填充好的结构作为一个参数传给Amazon。清单B包含了能实际工作的代码,它展示了如何在Amazon中搜索与关键字"underworld"匹配的全部音乐产品。

你可能注意到,我的搜索请求中包含参数searchRequestType,我将其设为lite。这样就告诉Amazon,我希望的是轻量级(而不是重量级)的搜索结果,其中只含有基本的产品信息,这样可加快数据返回速度。

成功格式化好请求后,它会返回和关键字匹配的所有产品的一个数组,即清单B中的searchResults。每个数组项都包含了和产品有关的数据,把它向用户显示出来是非常简单的,如清单C所示。

可能从这种请求返回大量产品信息,文档对其进行了全面描述。在上例中,我遍历产品数组,并输出一幅小图像(getImageUrlSmall)、产品名称(getProductName)、艺术家姓名(getArtists)以及价格(getListPrice)。

我还将产品名称变成一个链接,指向该产品的详细资料页。针对每个对象,Amazon.com的数据都包含一个链接,它指回其网站中的产品详细资料页,所以我可以直接使用那个链接。但有些时候,你可能不愿意马上就将客户转给Amazon,而是想让客户在自己的网站多呆一段时间。为此,可创建第二个页,用它来显示产品的部分细节。


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