Visual Studio2008 中如何调用第三方WS服务

.NET中支持对第三方WS服务的调用,而且用起来非常简单。比如,要调用Amazon的AWSECommerceService服务的itemSearch()接口,通过这个接口来查询Amazon网站中与SCA有关的书籍。在VisualStudio 2008 中只需要按照如下方式即可:

1)创建 "WCF 服务"的网站项目

创建项目时选择C#语言。

2)添加"Web引用"

通过项目名称的右键菜单进入。

添加Web引用时,系统还可以自动搜索本地部署的WS服务,本地网络中UDDI服务器中的WS服务。这里我们手工输入Amazon的wsdl URL(将上面的wsdl地址拷贝到URL文本框)。界面中的"引用名"其实是名称空间(你可以修改为任何名称空间)。确定后在资源管理视图中会生成一个.wsdl文件,以及discmap文件。

.Net会自动根据Service的名称生成一个同名的代理类,本例中生成的类为AWSECommerceService,复杂类型的对于输入和输出,系统也会自动生成相应的类(VC++, C #,VB),生成的类隐藏在"C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/Temporary ASP.NET Files"目录中 。

.Net在根据wsdl生成Stub代码时,对于wsdl中的数据类型,也会生成相应的Class,并能够支持数组、复杂类型嵌套以及Any类型。

 

3)创建"Web窗体"default.aspx

4)在default.aspx设计视图中拖放一个 Button

5) 编辑调用代码

双击上面的Button,系统自动打开该Button的click事件,

 

在该事件中编写WS接口调用代码如下:

 

//创建调用WS接口的代理类实例(系统自动生成的)

AWSECommerceService amc = new AWSECommerceService();

//创建参数

ItemSearch its = new ItemSearch();

its.AWSAccessKeyId = "[ 需要到Amazon网站申请Key,免费的]";

ItemSearchRequest shared = new ItemSearchRequest();

 

shared.SearchIndex = "Books";

shared.Keywords = "SCA";

its.Shared = shared;

 

//调用WS接口

ItemSearchResponse itsr = amc.ItemSearch(its);

 

//查询结果可以通过ItemSearchResponse 类进行访

 

 

上面的代码非常简洁明了,相比之下,利用Axsis2的wsdl2java生成的Stub代码调用WS服务的时候,就显得有点丑陋(光是生成的Stub类就高达17M之多)。在AXSIS2中调用Amazon的WS代码如下:

    

    //创建代理类的实例

    AWSECommerceServiceStub stub = new AWSECommerceServiceStub();

    

    //配置输入参数

    AWSECommerceServiceStub.ItemSearch param = new AWSECommerceServiceStub.ItemSearch();

    

    AWSECommerceServiceStub.ItemSearch_type0 is = new AWSECommerceServiceStub.ItemSearch_type0();

    is.setAWSAccessKeyId("[ 需要到Amazon网站申请Key,免费的]"); //

    

    AWSECommerceServiceStub.ItemSearchRequest isr = new AWSECommerceServiceStub.ItemSearchRequest();

    isr.setKeywords("SCA");

    isr.setSearchIndex ( "Books") ; //查询书名包含 SCA 的书籍

    

    is.setShared ( isr) ;    

    

    param.setItemSearch(is);

    

    //调用WS接口

    AWSECommerceServiceStub.ItemSearchResponse rsp= stub.ItemSearch(param ) ;

 

6) 调试项目

系统自动打开IE浏览器,点击Button按钮,就会执行WS调用,可以通过设置断点来查看返回值是否正确(也可以直接将取得的返回值显示在页面中的文本框控件)

 

    感觉不爽的是,VS2008太不稳定了,老是容易死机,只能杀掉进程,重新启动。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值